2012-02-28 8 views
-1

私の言語(ポーランド語)のエンコーディングでは処理できません。 żółwと書くと魅力的ですが、ślimakと書くと、śは私の配列にありません。文字列からのバイト配列のエンコーディング(ポーランド語フォント)

UTF-8でも試しましたが、結果はありません。 ここでは1250のエンコードが行われています。ż,ó,łで動作し、ą,ź...では動作しません。

byte[] buffer = Encoding.GetEncoding(1250).GetBytes(postdata); 

上記のコードはWebサーバーとの通信に使用されているため、通信前に問題があると思います。


も試しました:解決

byte[] buffer = Encoding.GetEncoding(28592).GetBytes(postdata); //iso-8859-2 Central European (ISO) 

を、iso-8859-2 Central European (ISO)は正解でした。 (私は古いexeプロジェクトファイルを実行していた)。

+0

あなたはUTF16を試してください。 –

+0

Utf-16も試しました:) iso-8859-2は正しい解決策でした – deadfish

+1

あなたが答えを見つけたら、あなた自身が答えとしてそれを受け入れ、それを受け入れます。これにより、人々はあなたの答えに投票し、質問を閉じることができます。 – Ricibob

答えて

0
byte[] buffer = Encoding.GetEncoding(28592).GetBytes(postdata); //iso-8859-2 Central European (ISO) 

解決済み、iso-8859-2 Central European (ISO)が正解でした。 (私は古いexeプロジェクトファイルを実行していた)。

+0

なぜdownvoteですか?理由を教えてください。 – deadfish

+1

質問をする前にあなたの研究の欠如は私の理由でした。 –

+0

ありがとう、ごめんなさい – deadfish

2

配列にśがあるとは限りません。それは符号化される必要があり、符号化された値は異なる。ここではUTF-8を使用することをお勧めします。その場合は、出力に0xC5 0x9Bがあると想定してください。これは、UTF-8エンコードśです。

28592を使用する場合、0xB6はエンコードされたフォームであり、正常にラウンドトリップします。

+0

私はENGのバージョンウィンドウに取り組んでいますが、私は分かりやすいフォントを使うことに問題がありました。コード化された文字列をサーバーに送るために解決策が必要なので、解決策は '8859-2'を使うことでした。しかし、答えをありがとう:) – deadfish

+0

@ Lummaそれは完全にどのようなエンコーディングがサーバーが使用することを期待しているかに依存します。 「期待しているもの」を除いて、正しい答えは一つもありません。(質問にはありません) –

関連する問題