我想保存用户在DB中作为CLOB发出的注释。它工作正常。后来我遇到了特殊字符问题。如果用户副本粘贴写字板中的评论,并且其中包含“单引号”或某些特殊字符(它们与通常有点不同),则会转换为反向问号或一些方框。我尝试使用下面的代码来处理它们。
values[4] = new String(values[4].getBytes("ISO-8859-1"), "UTF-8");
但我仍然拿着方盒子。在调试我意识到的问题之后,它无法处理空间。请参阅附图
注意:评论长度为122,无法只处理一个空格。我不知道这个空间有什么问题。
答案 0 :(得分:0)
请注意,在java中,编码仅在
时才有意义 Java的String
- 对象始终编码为UTF-16,因此假设values
是String[]
,您的代码正在执行以下操作:
values[4]
作为一组字符。 e.g。 £
- 字符将转换为字节值A3
,但该单字节不能使用UTF-8转换回来,因为它只能是2字节序列的一部分。
总结一下:该代码行完全被破坏,而使用String
- 对象则无需考虑任何类型的编码。在转换为字节时,必须处理代码页问题,无论是在文件或网络流的I / O期间,还是在转换为字节数组进行加密时。