【问题标题】:Encoding pinyin编码拼音
【发布时间】:2023-11-26 11:46:01
【问题描述】:

我目前正在用java开发一个程序,我想显示中文拼音,这是我从一个遥远的网站得到的。

但是我有以下问题:中文拼音是这样显示的:jiǎ
而应该这样显示:jiǎ
(我只是输入了相同的序列,只是去掉了斜线)。

我认为这个问题的答案很简单,但我很难找到它。

【问题讨论】:

  • 你如何获取编码的字符串以及如何显示它?
  • 使用 URL、InputStream 和 BufferedReader。但即使我认为问题可以在之后解决,因为如果我输入“j i 4 6 2;”在谷歌上(没有斜杠),它显示正确。我想我错过了转义字符之类的东西
  • 在这样的字符串文字中使用简体中文:System.out.println("pīnyīn jiǎ"); 似乎有效。 Java 中的字符串都是 unicode,因此您不需要对它们进行编码,我认为 @nhahtdh 的评论将引导您朝着正确的方向前进
  • 如果都是编号实体,其实可以写代码,但是如果有命名实体,那么我建议你使用现有的库来完成这项工作。

标签: java encode ansi iso


【解决方案1】:

问题是您有一个 HTML 编码的 Unicode 字符,而您想要的是它的解码版本。像commons-lang3(Apache Commons 的一部分)这样的库将获取您的 HTML 编码字符串并将其解码以供 Java 显示,如下所示:

String decoded = StringEscapeUtils.unescapeHtml("jiǎ");

您还可以像这样在 Java 中转义 Unicode 字符:

String jia = "ji\u01ce";

这个聪明的one-liner 将接受一个Unicode 字符并显示它的转义形式:

System.out.println( "\\u" + Integer.toHexString('ǎ' | 0x10000).substring(1) );

【讨论】: