1

我的 java 程序从 API 获取一些天气信息。但它在文本中有奇怪的字母。看起来像 ASCII 码。

这是一个示例:最低温度:0°C(32°F)应该是:最低温度:0C(32F)(我认为)。

我怎样才能改变它?

4

4 回答 4

1

那么一个解决方案可以是在发布之前你可以做以下

String withoutDegSymbol = str.replaceAll("°", "");

其中 str 包含您的温度数据。

于 2013-03-31T07:00:10.523 回答
1

尝试这个

    String s = "0°C (32°F)".replaceAll("[\u0080-\u00FF]", "");

或者如果您的文本中有 HTML 字符引用,请使用

String s = "Min temp: 0°C (32°F)".replaceAll("&#x.+?;", "");
于 2013-03-31T07:02:01.243 回答
1

如果在您的代码中使用 ASCII 字符编码,当您保存代码时,您的 IDE 是否询问您要以什么格式保存它。因为在 Eclipse IDE 中,如果您使用的是 ASCII 字符,它会提示您将代码保存为 UTF-8 格式。希望这可以帮助。

于 2013-03-31T07:23:06.523 回答
1

你需要知道:

°

  • 是 'DEGREE SIGN' 的 Unicode 字符
  • 编码:HTML 实体(十六进制)

因此,如果这是您遇到的唯一问题(我的意思是这是您使用“学位符号”的唯一字符),那么您可以手动转换它:

String s = "Min temp: 0°C (32°F)".replaceAll("°", "°");
System.out.println(s);

如果这不是您拥有的特殊字符,那么您可以使用:StringEscapeUtils 类jsoup 库将其转换为 java

于 2013-03-31T07:49:32.953 回答