gpt4 book ai didi

java - JAVA中的特殊字符

转载 作者:行者123 更新时间:2023-12-01 14:30:06 24 4
gpt4 key购买 nike

สวัสดีMr.Java Sp'e c'i'a'l'' '

我尝试使用下面的代码解析字符串,但我无法只是它显示了错误的值。

String s = "สวัสดี Mr.Java Sp'e c'i'a'l'' '"";
s = s.replaceAll("'", "'");
//s = s.replaceAll("'", "''");
StringEscapeUtils.escapeHtml(s);

我正在尝试从 JSP 获取并保存在 SQL Server DB 中并使用 JSP 进行显示并更新。但有时在 JSP 中它会显示 jsp 中转换后的 &apos,而不是 Special字符。

Very Simple is Here I have shown this String(สวัสดี Mr.Java Sp'e c'i'a'l'' ') in StackOverflow they save in their DB and Shows and allows me to update this is what I wanted.

最佳答案

好的。那么让我们看看您的代码做了什么:

// line 1
String s = "สวัสดี Mr.Java Sp'e c'i'a'l'' '";

我们有一个字符串,其中包含各种国际字符...以及一些 "'" 字符。

// line 2 
s = s.replaceAll("'", "'");

假设这些确实是 "'" 字符,我们将用 XML/HTML 字符实体替换 "'" 的所有实例,得到:

"สวัสดี Mr.Java Sp'e c'i'a'l'' '"

所以...

// line 3
s = StringEscapeUtils.escapeHtml(s);

这将用字符引用替换任何 Activity 的 HTML/XML 字符。这包括您之前插入的 & 符号 "&"。结果是这样的:

"&#xxxx;&#xxxx;&#xxxx;&#xxxx; Mr.Java Sp'e
c'i'a'l'' '"

(&#xxxx; 数字字符引用对泰语 (?) 字符进行编码。)

当您将其嵌入 HTML 文档并显示它时,您将看到“สวัสดี Mr.Java Sp'e c'i'a'l''' '”

<小时/>

看看发生了什么?您已对 HTML 转义了 HTML 转义的撇号!!

<小时/>

那么你真正需要做什么?

  1. 无需将撇号替换为'。撇号在 HTML 文本中是合法的。

  2. 应该无需添加 HTML 转义即可将文本存储在数据库中:

    • 任何现代数据库都允许您存储 Unicode 字符串,而无需任何特殊编码。

    • 如果您试图防止数据库的 SQL 解析器被您存储的文本中的引号所混淆,那么您的做法是错误的。执行此操作的正确方法是使用 PreparedStatement,向查询添加参数占位符,并使用 PreparedStatement.setXxx 方法提供参数值。 execute(或其他)将处理任何需要完成的 SQL 转义。

关于java - JAVA中的特殊字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16920242/

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