例如
{"orderNumber":"S301020000","customerFirstName":"ke ČECHA ","customerLastName":"张科","orderStatus":"PENDING_FULFILLMENT_REQUEST","orderSubmittedDate":"May 13, 2015 1:41:28 PM"}
如何在上面的json字符串中获取像“Č”这样的重音字符并在java中将其转义
请提供一些有关此问题的背景信息,请向我查看此问题 Ajax unescape response text from java servlet not working properly
对不起我的英文:)
答案 0 :(得分:1)
您应该转义所有大于0x7F
的字符。您可以使用.charAt(index)
方法遍历String的字符。对于需要转义的每个字符ch
,请将其替换为:
String hexDigits = Integer.toHexString(ch).toUpperCase();
String escapedCh = "\\u" + "0000".substring(hexDigits.length) + hexDigits;
我认为您不需要在JavaScript中使用它们,因为JavaScript支持字符串文字中的转义字符,因此您应该能够按照服务器返回的方式处理字符串。我猜你将使用JSON.parse()将返回的JSON字符串转换为JavaScript对象like this。
这是一个完整的功能:
public static escapeJavaScript(String source)
{
StringBuilder result = new StringBuilder();
for (int i = 0; i < source.length(); i++)
{
char ch = source.charAt(i);
if (ch > 0x7F)
{
String hexDigits = Integer.toHexString(ch).toUpperCase();
String escapedCh = "\\u" + "0000".substring(hexDigits.length) + hexDigits;
result.append(escapedCh);
}
else
{
result.append(ch);
}
}
return result.toString();
}