java - 如何在 Java 中删除字符串中 Unicode 杂项符号的 Unicode 十进制值
问题描述
我正在努力删除或替换在 Web 应用程序的文本区域字段中使用的字符串(在 Java 中)中的杂项符号。发生的情况是,当我使用下面的内容时,内容被转换为 unicode 十进制表示值.
内容为: String a = 'Last Search Results Bulletin Board Validations ⛔ 0 ⚡ 1 ⚠ 6 ? 0'
当我将该内容保存在文本区域(即网页中)时,该符号将保存为 ⛔,⚡,⚠。
我想删除 unicode 表示值(或)以正确的格式保存内容,以便我可以将正确的数据保存到数据库中。
如何从字符串中删除符号(“⛔”或“⚡”或“⚠”)的 unicode 表示值?实际上,我尝试使用正则表达式来替换下面 s.replaceAll("&#[9728 - 9983];", "") 中的那些表示。范围 [9728 - 9983] 表示杂项符号 unicode 十进制值范围。但它没有正确替换它。我可以使用哪个正则表达式?或者可以使用哪种方法来删除字符串中的值?
(或者)
如何将 unicode 表示值('⛔' 或 '⚡' 或 '⚠')再次转换为字符串中的相同符号(⛔、⚡、⚠)?
解决方案
您需要以 UTF-8 呈现页面,并在表单中说服务器接受表单数据中的 UTF-8。(否则&#...;
将发送实体而不是 Unicode 符号。)
<form action="..." accept-charset="ISO-8859-1">
在 HTML 5 中:
<meta charset="UTF-8">
旧版 HTML:
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
也应该相应地设置响应头:
Content-Type: text/html; charset=UTF-8
response.setContentType("text/html; charset=UTF-8");
response.setCharacterEncoding("UTF-8");
推荐阅读
- javascript - 如何为动态创建的文本框赋值?
- angular - 微软图表日历 | 获取其他用户日历
- java - ICO0005E: 发送或接收 IMS 消息期间发生通信错误。java.net.SocketException:连接重置
- java - Java - 使用 AWT 更改 JFrame 的标题
- endpoint - 为具有基本授权的外部 SOAP Web 服务创建一个 maximo 端点
- java - 无法从 openapi 客户端中的字符串反序列化“java.time.OffsetDateTime”类型的值
- python - 在python中的错误点使用哔声
- node.js - 有没有办法在调用nodejs中的控制器之前调用函数
- python - 如何在python中以迭代方式定义函数?
- html - 带有图标和文本的 HTML 圆圈