编码与转义相同吗?

时间:2010-12-04 15:25:45

标签: encoding escaping theory

我对Encoding与Escaping是否相同的理论感兴趣?根据维基百科

  

转义字符是一个字符   这会引发另一种选择   随后的解释   字符序列中的字符。

我目前的想法是,他们是不同的。转义是指在元字符前放置一个逃逸字符,以标记它/它们的行为与正常情况不同。

另一方面,编码就是将数据转换为另一种形式,并且在想要阅读原始内容时,它将被解码回原始形式。

3 个答案:

答案 0 :(得分:3)

转义是编码的一个子集:您只能通过为特殊字符加前缀而不是将(通常是全部或多个)字符转移到另一个表示来对某些字符进行编码。

逃避示例:

  • 在SQL语句中:... WHERE name ='O \'Reilly'
  • 在shell中:ls Thirty\ Seconds\ *
  • 许多编程语言:"\"Test\"字符串(或"""Test"""

编码示例:

  • 在HTML
  • 中输出用户输入时,用<替换&lt;
  • 字符编码,如UTF-8
  • 使用不包含所需字符的序列,例如\u0061
  • a

答案 1 :(得分:3)

他们是不同的,我认为你正确地得到了区别。

编码是指将文本的逻辑表示(“逻辑字符串”,例如Unicode)转换为明确定义的二进制数字序列(“物理字符串”,例如ASCII,UTF-8,UTF-16) 。转义是一个特殊字符(通常是反斜杠:'\'),它启动对转义字符后面的字符的不同解释;当您需要将更多数量的符号编码为较少数量的不同(和有限)比特序列时,必须进行转义。

答案 2 :(得分:0)

他们确实不同。

你几乎做对了。