2009-06-09 7 views
1

UnicodeコードとSHIFT_JISコードのあいまいなマッピングがあると聞いています。 This KB articleはこれを幾分証明します。SHIFT_JISとUnicodeエンコーディング間で変換に問題がありますか?

質問:SHIFT_JISでエンコードされたテキストをUnicodeに変換して戻すとデータが失われますか?

詳細:私はWindows(XPおよびon)と.NET(理論的にはNLS APIに依存しています)について話しています。

答えて

1

これはまだデータが失われますようにはい、それはなります

using System; 
using System.Text; 

class Test 
{ 
    static void Main(string[] args) 
    { 
     Encoding shiftJis = Encoding.GetEncoding(932);   
     byte[] original = new byte[] { 0x87, 0x90 };   
     string text = shiftJis.GetString(original); 
     byte[] backAgain = shiftJis.GetBytes(text);  
     Console.WriteLine("{0:x}{1:x}", backAgain[0], backAgain[1]); 
    } 
} 

あなたがにリンクされたページによって予測されるようにこれは、81E0を印刷します。

関連する問題