私が現在取り組んでいるプロジェクトは、私たちが作っていないクライアントシステムとインターフェースする必要があるので、どちらの方法でデータが送られるかを制御することはできません。問題は、C#で作業していたことです。これはUCS-2をサポートしていないようで、ビッグエンディアンはほとんどサポートされていません。 (私が知る限り)C#ビッグエンディアンUCS-2
私が知りたいのは、ネットで見ているものがあるか、他人が作って使っているものがあるかどうかです。もしそうでなければ、私はカスタムメソッドでそれをエンコード/デコードする際に亀裂をとるでしょう。
いずれにせよお時間をいただきありがとうございます。
EDIT: BigEndianUnicode が正しく文字列をデコードする作業を行い、問題がこれまでに(IPAddress.HostToNetworkOrderを使用して、ビッグエンディアンとして他のデータを受信していた)他の場所で示唆したように(私は文字列の半分をデコードすることができました私は、ビッグエンディアンの変数が主な問題だったことをワークアウト後 :?メルリは、最大来るものであり、それは
Imは別の長さ変数iが
解決を逃したtheresのかどうかを確認するために、短いコードをコーミング)Merlin33069する必要があります詳細を見直してみたところ、文字列のengthはバイトカウントではなく文字カウントで送られました(私はcharが2バイトであると思われます)。私がする必要があったのはそれを倍にしてしまったからです。助けてくれてありがとう。
ほとんどの(すべてではない)ケースでは、UCS-2はUTF-16と同じです。あなたは 'Encoding.BigEndianUnicode'を探していますか?これは本当に.NETではないことに注意してください。C# –
私はこの問題がUCS-2とUTF-16の違いではないことを強く疑っています。問題を実証しているいくつかのサンプルデータを与えてください - 生のバイト数とデコードされたテキストが期待されるものを表示してください。 –
まあ、私は問題が見つかりました、クライアントはJavaで、私たちの側はC#で、文字列*長さを送信するときにもbigendianで、そのときに私たちはCの長さを取得する異なる。 – RyanTimmons91