【发布时间】:2016-03-28 23:02:32
【问题描述】:
我想转义字符串中除 unicode 字符 (\u) 之外的所有特殊字符,因为我仍想正确显示非英文字符。我目前正在使用 StringEscapeUtils.escapeJava() 方法,但还没有找到排除特定字符的方法(在这种情况下,\u 表示 unicode)。我能想到的唯一替代方法是为除 \u 之外的每个特殊字符调用 replace 或 replaceAll,这似乎并不理想。有没有更好的方法来做到这一点?
例如:
"Los
niños"
应转换为"Los\nniños" 而不是"Los\nni\u00F1os"
【问题讨论】:
-
我不明白......为什么不选择合适的编码?
-
@tim_yates 我使用的框架默认为 UTF-8。如果可能的话,我更愿意坚持这一点,但是你有没有推荐的编码适合这个?谢谢!
-
您能更好地解释一下为什么要进行这种编码吗?
-
@tim_yates 使用 UTF-8 b/c 这是我们框架的其余部分使用的,它正确编码非拉丁字符,但这可以很容易地改变,只要新的编码也编码非拉丁字符正确。以这种方式格式化输出字符串,因为我将数据发送给期望以这种形式输入的第三方;他们解析/显示我们发送给他们的数据。
-
是的,但你为什么要通过
StringEscapeUtils.escapeJava
标签: java unicode groovy escaping