gpt4 book ai didi

java - Java中如何处理特殊字符?

转载 作者:太空宇宙 更新时间:2023-11-04 12:58:20 24 4
gpt4 key购买 nike

我想将用户给出的注释作为 CLOB 保存在数据库中。运行良好。后来我遇到了特殊字符的问题。如果用户从写字板复制粘贴注释,并且其中包含“单引号”或一些特殊字符(它们与平常有点不同),它们将转换为反向问号或一些方框。我尝试使用下面的代码来处理它们。 enter image description here

values[4] = new String(values[4].getBytes("ISO-8859-1"), "UTF-8");

但我仍然得到方形盒子。调试问题后我意识到,它无法处理空格。请参阅附图

注意:评论长度为122,仅处理1个空格失败。我不知道那个空间出了什么问题。

最佳答案

请注意,在 java 中,编码仅在以下情况下才重要

  1. 进行某种(文件)IO 或
  2. 将字符转换为字节

Java 的 String 对象始终编码为 UTF-16,因此假设 valuesString[],您的代码将执行以下操作:

  1. 将字符串 values[4] 作为一组字符。
  2. 使用 ISO8859-1 编码将每个字符转换为一个字节
  3. 使用 UTF8 编码将这些字节转换为字符。

例如£ 字符将被转换为字节值 A3,但该单个字节无法使用 UTF-8 转换回来,因为它只能是 2 字节序列的一部分。

总而言之:该代码线完全被破坏,而使用 String 对象时,无需考虑任何类型的编码。您必须处理代码页问题的地方是在转换为字节时,无论是在文件或网络流的 I/O 期间,还是在转换为字节数组以进行加密时。

关于java - Java中如何处理特殊字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35175923/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com