私のjavaコードでは、データベースからマルチバイトデータを取得し、そのデータをノードの値として使用してxml DOMを作成し、DOMを文字列に変換し、HTTPURLConnectionを介してASPページにbytestを投稿していますが、どういうわけかレシーバーでデータを終了しています????として表示されています いくつかのマルチバイト値の代わりに。何をすべきかを提案してください。
私がすでにやっていること。
1)-Dfile.encoding =UTF8
システムプロパティとして設定しました2)TransformerFactory
XML DOMを文字列に変換するために使用している間、設定しました
transformer.setOutputProperty(OutputKeys.ENCODING, "UTF-8")
そこでエンコーディングが適切であることを確認します。私が間違っているところを提案してください。
@JonSkeetここに追加するものは他にいくつかあります...1)データベースからデータを正しく取得しています2)ローカルファイルシステムに保存して確認したところ、変換されたXMLも適切であるように見えます。
以前に投稿するために私は次のようなものを使用していました
'dout = new DataOutputStream(urlconn.getOutputStream());'
'dout.write(strXML.getBytes());'
'dout.write(strXML);'
そして、受信側で得られたデータは?????に変換されていました
しかし、それから私は'に切り替えました
dout=new OutputStreamWriter(urlconn.getOutputStream(),"UTF8");'
'dout.write(strXML);'
その場合、受信側のデータは適切であるように見えます...しかし、この場合、受信側でのデータの処理方法に問題が発生します。私が使用している受信機のASPコードobjStream.WriteLine (oXMLDom.xml)
で...そしてここで失敗し、内部サーバーエラーが発生し始めます...2番目のアプローチの何が問題なのかを提案してください。