在我的一个Java Web应用程序中,description字段必须允许中文字符。在JSP中,字段正确地允许它们,如图片https://i.stack.imgur.com/6w2K3.jpg所示,数据插入到DataBase中,因为TEST - NTEXT使用UTF-8编码样式,数据库是MS SQL Server2016,数据库列类型是测试说明。JSP没有问题,但是,当生成报告(如.rtf)时,这些数据以编码字符串格式显示,即TEST -测试说明,而不是中文字符。生成报表时正在使用的编码类型UTF-8。有人能帮我解决这个问题吗?
发布于 2018-07-04 16:57:11
这些测和类似的字符需要解码。使用JSP时,您很可能不需要对它们进行解码,因为JSP生成HTML并按原样输出文本,这会生成有效转义的HTML字符。
但是RTF和其他格式不是HTML,所以这一点不适用于它们。对于它们,您需要在尝试输出它们之前对字符进行解码。
Commons-lang的StringEscapeUtils将提供这样做的方法。或者你可以为它编写自己的解码器,这几乎是非常简单的,如果你不想仅仅为了这样做而添加整个库。
https://stackoverflow.com/questions/51168696
复制相似问题