3

äÄéöÖüß などのドイツ語の特殊文字を含むフォルダ名があります。次のスクリーンショットは、LiveLink サーバーの内容を示しています。

ここに画像の説明を入力

C# を使用して Livelink サーバーからフォルダーを抽出したいと考えています。

値は LLserver から取得されます。

  var bytes = new List<byte>(value.Length);           

         foreach (var c in value)
         {
             bytes.Add((byte)c);                 
         }           

        var result = Encoding.UTF8.GetString(bytes.ToArray());

最終的に、結果は äÄéöÖü�x になります。ここで、ß はボックス文字 '�x' と見なされます。フォルダ名に含まれる他のすべての文字は、β 文字を除き、正常に/適切にデコードされます。

同じコードが他のすべてのドイツ語の特殊文字では機能するのに、なぜ ß では機能しないのか疑問に思っています。

C#でこの問題を解決するのを手伝ってくれる人はいますか?

前もって感謝します。

4

2 に答える 2

1

サーバー Livelink/livelink.exe?func=admin.sysvars の管理パネルに移動し、文字セット: UTF-8 を設定します。

コードセクションは次のように変更されます

        byte[] bytes = Encoding.Default.GetBytes(value); 
        var retValue = Encoding.UTF8.GetString(bytes);

それは正常に動作します。

于 2013-09-22T07:02:05.253 に答える
0

エンコーディングが UTF8 であると推測しましたが、明らかにそうではありません。バイトストリームが実際に表しているエンコーディングを見つけて、代わりにそれを使用する必要があります。私たちはそれについてあなたを助けることはできません.あなたはそのバイトの送信者に尋ねる必要があります.

于 2013-09-18T09:45:06.680 に答える