54239


文字コードがSJISのファイルデータを読み込んで、文字コードがUTF-8のOracleデータベースのテーブルにデータを登録したいです。プログラムをC#で作成する際、文字コードの差異による問題がありましたらご教示頂きたく、よろしくお願い致します。

C#ではファイルをSJISで読み込んで、そのままDBへの登録処理をするだけで、プログラムやデータベースが文字コードの差異を吸収してくれるとありがたいのですが。

**実行環境**  
Windows 10 / Windows Server 2016  
.NET Framework 4.6.2  
Oracle 12.2


CC BY-SA 4.0
2019-04-16T11:35:14.477
54210
2019-05-15T07:24:17.407
2019-05-15T06:13:10.230
3060
9228
question
c# oracle 文字化け shift-jis
文字コードSJISのファイルデータを文字コードUTF-8のデータベース(Oracle)に文字化けしないでプログラムで格納できますか？


[C#の`string`](https://docs.microsoft.com/ja-jp/dotnet/csharp/language-
reference/keywords/string)はUnicodeと定められています。つまり、外部とやり取りする際には常にエンコーディングの変換が行われます。Shift-
JISのファイルを読むのであれば読み込みの際にエンコーディングを指定しますし、Oracleと接続する際にはOracle側とエンコーディングの整合が取られます。

後は、各々を正しく設定するだけの問題となります。


CC BY-SA 4.0
2019-04-17T04:40:45.200
54239
2019-04-17T04:40:45.200
4236
54210
answer


文字コードを指定してデータを読み込む

[code]

    Microsoft.VisualBasic.FileIO.TextFieldParser parserData = new TextFieldParser(yourFilePath, Encoding.GetEncoding("Shift_JIS"));
    string[] fields = parser.ReadFields();
    
[/code]


CC BY-SA 4.0
2019-05-15T05:57:13.033
54970
2019-05-15T07:24:17.407
2019-05-15T07:24:17.407
2238
30060
54210
answer