当前位置: 首页 > 面试题库 >

字符串解码utf-8

秦弘亮
2023-03-14
问题内容

如何使用Android解码utf-8字符串?我尝试使用此命令,但输出与输入相同:

URLDecoder.decode("hello&//à", "UTF-8");

new String("hello&//à", "UTF-8");

EntityUtils.toString("hello&//à", "utf-8");

问题答案:

字符串不需要编码。它只是一个Unicode字符序列。

要将字符串转换为字节序列时需要进行 编码 。您选择的字符集(UTF-8,cp1255等)确定了Character->
Byte映射。请注意,字符不必转换为单个字节。在大多数字符集中,大多数Unicode字符都转换为至少两个字节。

字符串的编码通过以下方式进行:

String s1 = "some text";
byte[] bytes = s1.getBytes("UTF-8"); // Charset to encode into

当您有一个字节序列并且想要将它们转换为字符串时,需要 解码 。当您需要指定字节时,再次指定字节的原始编码字符集(否则,您将得到乱码)。

解码:

String s2 = new String(bytes, "UTF-8"); // Charset with which bytes were encoded

如果您想更好地理解它,最好的文字是“
绝对绝对要每个软件开发人员绝对肯定地了解Unicode和字符集(无借口!)




 类似资料:
  • 问题内容: 我遇到了这行遗留代码,我试图找出这些遗留代码: 据我了解,它是使用相同的charSet进行编码和解码。 这与以下内容有何不同? 在任何情况下,两条生产线的输出将不同? ps:只是要澄清一下,是的,我知道Joel Spolsky撰写的关于编码 的出色文章! 问题答案: 这可能是很复杂的方式 这缩短了String,而所使用的基础char []则更长。 但是,更具体地说,将检查每个字符是否都

  • 问题内容: 我在AngularJS上建立的SPA中有一个文本输入框,供用户向打印输出中添加标题。输入框的声明如下: 文本框中填充了服务器提供的默认标题。用户可以将标题更改为适合他们的名称。更改标题后,服务器将更新并在响应的标题中发送回新标题,然后替换框中的标题。这非常适合标准ASCII类型的字符。 但是,对于unicode字符(例如àßéçøö),它不起作用。文本已正确发送,在服务器上正确更新并正

  • 问题内容: 我有一个带有“ñ”字符的字符串,并且我有一些问题。我需要将此字符串编码为UTF-8编码。我已经通过这种方式尝试过,但是没有用: 如何将该字符串编码为utf-8? 问题答案: Java中的对象使用无法修改的UTF-16编码。 唯一可以使用不同编码的是。因此,如果你需要UTF-8数据,则需要一个。如果你有一个包含意外数据的,则问题出在较早的地方,该错误地将一些二进制数据错误地转换为a (即

  • 问题内容: 我正在使用BeautifulSoup从HTML提取一些文本,但是我只是想不出如何正确地将其打印到屏幕(或与此相关的文件)上。 这是我的包含文本的类的样子: 当尝试打印一个实例时,这是我在控制台上看到的: 无论我尝试什么,都无法获得想要的输出(上面的文本应该是希伯来语)。我的最终目标是序列化到文件(使用json或pickle)并能够将其读回。 我在Ubuntu 10.10上使用Pytho

  • 问题内容: 我正在使用Javascript 函数解码base64编码的字符串(特别是来自GitHubAPI的base64编码的内容)。问题是我回来了ASCII编码的字符(而不是)。如何正确处理传入的以base64编码的流,以便将其解码为utf-8? 问题答案: 此问题: “ Unicode问题”由于s是16位编码的字符串,因此在大多数浏览器中,如果字符超出8位字节的范围(0x00〜0xFF),则调

  • 我正在使用Javascript函数来解码一个base64编码的字符串(特别是GitHub API中base64编码的内容)。问题是我得到了ASCII编码的字符(像而不是)。如何正确处理传入的base64编码的流,以便将其解码为UTF-8?