如何在URL编码中使用UTF-16?

时间:2011-08-03 11:42:18

标签: java url encoding

目前我正在使用utf-8进行网址编码。我想将其转换为UTF-16。

我怎样才能做到这一点?

2 个答案:

答案 0 :(得分:8)

在URL中对Unicode字符进行编码时,必须对所有URL解析器和使用者都能理解您的URL进行编码。

为此目的;在Unicode和相关标准和工具的开发之后由RFC扩展URL时,决定用于编码字符的编码(使用百分比转义)是UTF-8,因为这意味着建立ASCII转义就是Just Work™。

因此,即使您可以使用基于UTF-16的百分比转义生成URL,也没有其他程序能够理解它们,使它们无用。事实上,根据定义问题,他们甚至不会 URL。

还有一个问题是,为什么你真的想要使用UTF-16来任何,这是愚蠢的。

请记住:永远不要使用UTF-8! N'DUUH!

答案 1 :(得分:1)

URL转义,如%nn十六进制值,编码字节。 8位字节。如果出于某种非标准原因,您希望编码UTF-16而不是UTF-8字节,则必须先选择字节顺序(BE或LE)。然后,您必须在程序中编写代码,以获取每个16位UTF-16字符的两个字节,并将其表示为%nn(十六进制)。