java - 将十进制格式(html 编码)的 Unicode 字符字符串转换为常规字符串

标签 java string unicode hashmap

我有一个 Map 类型的变量。

if (sourceMap.containsKey(currentRow)) {
    //Remove the row from Map
} else {
    //Mismatch
}

其中sourceMap是一个Hashmap变量,其中包含许多字符串,例如

Period Name
Person Last Name
Person First Name
Order Code
Ship_to_Customer_Name
Sub_Profit_Center
Commission Amount
Credit Amount
Rate Amount
Apr-09
Morgan
Martin
1022334852
Carl Zeiss de M&# 195;&# 189;xico, S.A. de C.V.(no space after the # in the string)

currentRow包含以下字符串:

Carl Zeiss de Mýxico, S.A. de C.V.

与最后一行相同。我的要求是它应该匹配。现在它不匹配。我必须进行什么转换才能匹配这些

这些字符串来自不同的文件 第一个以 CSV 格式下载,因此没有 unicode 字符。第二个(currentRow)以 unicoded txt 格式下载,并使用 dos2unix 转换为 CSV。

最佳答案

Carl Zeiss de Mýxico, S.A. de C.V.

这是一个包含 HTML 编码字符的字符串。您可以使用实用程序函数执行 HTML-unescape,例如 unescapeHtml4 .

通常,您希望将字符串保留为原始形式,而不是使用 HTML 转义符。看看你的 sourceMap 在哪里 - 如果你控制它并且可以修复它避免无端转义那么这就会起作用。另请注意,Máxico,无论是否经过 HTML 编码,看起来都像是堆栈中其他位置的 Unicode 字符处理不当的证据。

关于java - 将十进制格式(html 编码)的 Unicode 字符字符串转换为常规字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24204423/

相关文章:

php - 包括我自己的 mb_string 函数还是使用 PHP 的默认值?

Java 将基类转换为扩展类

java - 从 portlet 使用 AbstractExcelView

java - Java中无限并行流图减少有时间限制的管道

python - PIL draw.text() 将包含阿拉伯连字的字符串显示为两个单独的字形

java - 将 Stax XML 写入 ObjectOutputStream(socket.getOutputStream) 时出现 MalformedByteSequenceException

java - 如何在java中实现TCP连接池?

JavaScript 表单验证,确保出生日期为 4 位数字

c++ - 如何大写和标题字符串

unicode - Unicode 的换行规则是否要求最后一个字符是强制换行符?