gpt4 book ai didi

java - 取消转义并转换字符串编码

转载 作者:搜寻专家 更新时间:2023-11-01 04:06:35 25 4
gpt4 key购买 nike

我必须在 Java 中将字符串解析为日期对象。我得到的字符串遵循模式 MMM d yyyy HH:mm:ss z,语言环境设置为 French

由于法国口音的编码,当日期在二月、八月或十二月时会出现问题。例如,我得到 déc。 15 2011 16:55:38 CET 表示 2011 年 12 月 15 日。

我无法更改字符串的创建方式,因此我必须处理我这边的错误编码。似乎生成的字符串编码错误(UTF-8 内容编码为 ISO 8859-1)然后转义。

现在我使用:

stringFromXML = stringFromXML.replaceAll("é", "é");
stringFromXML = stringFromXML.replaceAll("û", "û");

之所以有效,是因为法语月份中唯一的重音是 éû 但是是否有更简洁的方式来取消转义和转换字符?

最佳答案

你需要两个步骤:

  1. 解析数字字符引用,例如,按照 Andy 的建议使用 StringEscapeUtils:

    String unescaped = StringEscapeUtils.unescapeHtml(in);
  2. 通过将字符视为 UTF-8 代码单元来修复编码问题:

    String out = new String(unescaped.getBytes("ISO-8859-1"), "UTF-8");

关于java - 取消转义并转换字符串编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9158707/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com