【问题标题】:Convert any String to UTF-8 format将任何字符串转换为 UTF-8 格式
【发布时间】:2012-08-11 01:27:34
【问题描述】:

我在String下面有这个,老实说我不知道​​它是哪种格式?

Under%20\302\243100%2E00

我需要在UTF-8 format 中转换上面的字符串,上面的字符串的输出应该如下所示。

Under%20£100%2E00

那么基本上如何在 Java 中将任何字符串转换为 UTF-8 格式?

【问题讨论】:

  • 这是 UTF-8 数据,部分 URL 编码,然后解码为 Latin-1。完全解码后会显示“Under £100.00”。
  • 我不明白为什么您需要在最后的字符串中将小数点 ('.') 编码为 "%2E"。如果此字符串旨在成为 URL、HTML、XML、JSON ... 或任何其他立即想到的内容的一部分,则没有必要。

标签: java string utf-8


【解决方案1】:

您在该字符序列(不是 Java 字符串文字)中拥有的是两种编码的混合:八进制编码和 url 编码。八进制编码看起来像 \xxx,其中 xxx 是八进制的字符代码。 Url encoding 看起来像 %XX,其中 XX 是十六进制的字符代码。 Octal encoding 实际上是 Java 规范的一部分。现在,将八进制转换为 Java 字符串并非易事。没有内置的方法。不过,请查看此线程,了解如何操作:How to unescape a Java string literal in Java?

【讨论】:

  • 需要指出的是,这不是Java字符串字面量……所以链接文章中的“ideas”不会自动继承。
  • 你说得对,我应该更明确一点,上面不是字符串文字。
  • 那么有什么方法可以将上面的字符串转换为 UTF-8 格式吗?还是一些 Java 函数?
猜你喜欢
  • 1970-01-01
  • 2013-03-02
  • 1970-01-01
  • 2020-10-04
  • 2014-09-08
  • 2012-12-05
  • 2012-02-20
  • 2015-04-29
  • 1970-01-01
相关资源
最近更新 更多