字符编码怎么看?

大伯格
  • 371

以下都是“中国”两个字的编码:

UTF-8:中国
URL编码(同样是UTF-8):%e4%b8%ad%e5%9b%bd
unicode:u4e2du56fd

问题1:为什么UTF-8的编码和URL编码不一样?都是UTF-8不是吗?
问题2: % u 这些前缀什么意思?
问题3:字符编码要怎么看?

回复
阅读 2.6k
2 个回答
easunlee
  • 121
✓ 已被采纳

一知半解,尝试抛砖引玉:)

  1. 中国 并非 utf-8,而是HTML、XML 等 SGML 类语言的转义序列(escape sequence)。它们不是「编码」。以 HTML 为例,这三种转义序列都称作 character reference:第一种是 character entity reference,后接预先定义的 entity 名称,而 entity 声明了自身指代的字符。后两种是 numeric character reference(NCR),数字取值为目标字符的 Unicode code point;以「&#」开头的后接十进制数字,以「&#x」开头的后接十六进制数字。NCR 以 Unicode 为准,与文档编码无关。「中国」二字分别是 Unicode 字符 U+4E2D 和 U+56FD,十六进制表示的 code point 数值「4E2D」和「56FD」

所以。 其实上你可以理解是特定前缀+ Unicode ( 非 utf-8)编码。 所以你看看其实和 unicode 是一样的。

  1. % 是URL编码规定的转义前缀。 所以你看看这个其实和 utf-8 的中国是一样一样的(请刨除前缀看)
  2. 说实在的。。没有看懂了。

问题1: 中 字的 utf8 码是E4B8AD 国字的utf-8 是E59BBD,在utf8的世界里,虽然可以表示中文,但是任何字符都有对应的码表位置。简单说 你认为的utf-8 中国是错误的。
问题2 % 号是前缀是转义,U 是unicode 编码规定的前缀
问题3:没有get 到楼主的意思,是应用中应该选择什么样的编码呢,还是 别的

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏