我有一个 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/