間違って記事消してしまったので、改めて書きなおし。。。



文字コードの変換方法を書きます。


文字コードの変換って何かというと、下記のような感じ


Shift-JIS → UTF-8


Windowsの標準が[Shift-JIS]で世の中がUnicodeに流れて行ってる中、必要な技術かと。

Shift-JISのファイルを読み取って、UTF-8に変換するとか。


ちなみにやらないと、意味不明な文字がテキストに表示されたりとか。。。

まぁ文字化けですね。


そんな問題を解決する方法を記載します。



System.Text.Encoding src = System.Text.Encoding.ASCII;
System.Text.Encoding dest = System.Text.Encoding.GetEncoding("Shift_JIS");
string str = "テスト文章";
byte [] temp = src.GetBytes(str);
byte[] sjis_temp = System.Text.Encoding.Convert(src, dest, temp);
string sjis_str = dest.GetString(sjis_temp);
Console.WriteLine(str);
Console.WriteLine(sjis_str);


これでUTF-8→Shift_JISに変換してます。

2つの目のコンソール出力で文字化けしているかと思います。

(デフォルト、.netがUTF-8標準のため)


下記のように独自ユーティリティークラスのメソッドにしておくと便利かと


public static string ConvertEncoding(string src, System.Text.Encoding destEnc)
{
	byte[] src_temp = System.Text.Encoding.ASCII.GetBytes(src);
	byte[] dest_temp = System.Text.Encoding.Convert(System.Text.Encoding.ASCII, destEnc, src_temp);
	string ret = destEnc.GetString(dest_temp);
	return ret;
}



んなぁ難しい事じゃないので、身構えず変換しちゃいましょ。


プログラミングC# 第5版/Jesse Liberty
¥5,040
Amazon.co.jp

プログラミングMicrosoft LINQ (マイクロソフト公式解説書 Microsoft V.../Paolo Pialorsi、Marco Russo
¥7,980
Amazon.co.jp