将特殊字符转换为字节和字符串时出现问题

时间:2019-04-23 22:38:29

标签: java encoding

我正在网页上显示一个下拉菜单,但是当使用字符○作为选项时,该下拉菜单会显示一个问号

我从SQL Server数据库中获得下拉选项,其中保存该值的列为nvarchar类型 然后,我创建一个带有值的XML输出字符串,以将其作为AJAX调用的响应发送给

当我执行xmlWriter.toString()时,作为xmlWriter的StringWriter对象,我能够使用Eclipse的调试模式看到○字符,但是该字符串需要作为ByteArrayOutputStream对象发送,以将其添加到响应流中。响应以查看客户端上的XML文件,但是当执行xmlWriter.toString()。getBytes()时,○字符会变成问号

我尝试使用xmlWriter.toString()。getBytes(“ UTF-8”),但结果是一些奇怪的符号

我想念什么?

1 个答案:

答案 0 :(得分:0)

通过猜测可能是什么问题,感觉好像您没有在浏览器的响应对象中指定编码,并且无法猜测正确的编码。考虑像您一样调用getBytes("UTF-8")(更好的方法是getBytes(StandardCharsets.UTF_8)),并在您可能使用HTTP时在HTTP标头(Content-Type: application/xml; charset=utf-8)中提交编码信息以及响应,或者XML标头(<?xml version="1.0" encoding="utf-8"?>)。也许两者都可以,因为这将为您提供最佳的兼容性。