В моем Java-коде я извлекаю некоторые многобайтовые данные из базы данных и создаю некоторый XML-DOM, используя эти данные в качестве значения некоторого узла, затем преобразовываю DOM в String и отправляю байты на страницу ASP через HTTPURLConnection, но каким-то образом в получателеконец данных появляется как ????вместо некоторых многобайтовых значений. Пожалуйста, предложите, что делать.
То, что я уже делаю ..
1) Я установил -Dfile.encoding =UTF8
как системное свойство 2) При использовании TransformerFactory
для преобразования моего XML DOM в строку я установил
transformer.setOutputProperty(OutputKeys.ENCODING, "UTF-8")
, чтобы убедиться в правильности кодировки.Пожалуйста, предложите, где я ошибаюсь.
@ Jon Skeet Еще несколько вещей, чтобы добавить сюда ... 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)
... и здесь он терпит неудачу и начинает выдавать внутреннюю ошибку сервера ... пожалуйста, предложите, что не так со вторым подходом.