- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:WindowsのUNICODEをJavaのStringに変換したい)
WindowsのUNICODEをJavaのStringに変換したい
このQ&Aのポイント
- Windowsからソケット通信で受け取ったUNICODE(little endian)文字列をJavaのStringに変換する方法について調査しています。現在、バイト配列からStringを生成する方法を検討していますが、漢字コードが化ける問題が発生しています。エンディアン並びを逆にしたりしても問題は解決しません。また、Windowsのメモ帳で表示されるunicodeとJavaのunicodeが異なるという情報もありますが、詳細は不明です。質問者はWindowsクライアント側の通信部分でバイト配列が壊れる可能性は低いと考えています。
- Windowsクライアントからソケット通信で受け取ったUNICODE(little endian)文字列をJavaのStringに変換する方法について質問しています。バイト配列からStringを生成する方法を試してみましたが、漢字コードが化ける問題が発生しています。エンディアン並びを逆にしたりしても問題は解決しません。また、Windowsのメモ帳で表示されるunicodeとJavaのunicodeが異なるという情報もありますが、詳細は不明です。バイト配列が壊れる可能性は低いと考えています。
- Windowsから受け取ったUNICODE(little endian)文字列をJavaのStringに変換する方法について質問しています。現在、バイト配列からStringを生成する方法を試していますが、漢字コードが化ける問題が発生しています。エンディアン並びの変更なども試しましたが、問題は解決していません。Windowsのメモ帳とJavaのunicodeの表示に差異があるという情報もありますが、詳細は不明です。バイト配列が壊れる可能性は低いと考えています。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
Unicode のリトルエンディアンでデータが送られてきていることが分かっているのですから、単純にそれを指定すればいいと思いますが…… String text = new String(buffer, "UnicodeLittleUnmarked"); ※ メモ帳もそうですが、Windows で単に Unicode といった場合 utf-16 のリトルエンディアンをさすのが普通です。
お礼
ご回答ありがとうございます。 "UTF-16LE"でうまくいきました。 基本的なことですみません、、