分類:[C#]
2009/09/28(Mon) 20:20:51 編集(投稿者)
2009/09/28(Mon) 20:20:18 編集(投稿者)
2009/09/28(Mon) 20:20:08 編集(投稿者)
いつも参考にさせていただいています。joseと申します。
UTF-8からShift_JISへの変換、およびその逆を行おうとしています。
下記のコードにて、結果としてtrueが返って来る事を期待していますが、
originalStringのバイト配列表現は{227, 129, 130}
utf8EncodedStringのバイト配列表現は{227, 129, 129, 69}
となり、一致せず、falseが返ってきます。
一致することを期待しているのですが、どうしてこのようになるのでしょうか。
環境はC# 2.0です。
class Program
{
public const string encodeString = "shift_jis";
static void Main(string[] args)
{
string originalString = "あ";
string sjisEncodedString =
ConvertEncoding(
originalString,
Encoding.UTF8,
Encoding.GetEncoding(encodeString));
string utf8EncodedString =
ConvertEncoding(
sjisEncodedString,
Encoding.GetEncoding(encodeString),
Encoding.UTF8);
Console.WriteLine(string.Equals(originalString, utf8EncodedString)); // trueを期待
}
public static string ConvertEncoding(string src, System.Text.Encoding srcEncoding, System.Text.Encoding destEncoding)
{
byte[] bytesData = srcEncoding.GetBytes(src);
return destEncoding.GetString(bytesData);
}
}