了解二进制字符串分隔符



我对编码之间的区别感到困惑

  • x表示,如x68x65x6cx6cx6fvs.
  • 使用u的,如u0068u0065u006cu006cu006f

我一直在玩 https://convertcodes.com/unicode-converter-encode-decode-utf/,似乎 UTF-16 使用u和 UTF-8 使用x,但从其他来源我读到x不是特定于 UTF-8 的,u也不是特定于 UTF-16。有什么区别,两种编码都可以同时使用这两个分隔符吗?此外,这个问题的标题是否正确?这些可以称为二进制分隔符吗?示例字符串(x68x65x6cx6cx6fu0068u0065u006cu006cu006f)是否被视为二进制字符串,BLOB或其他东西?这些类型的字符串的正确名称是什么?

一切都完全取决于谁来解释它,因此意味着最少的上下文:

  • JSON 只知道u(不绑定到特定的 UTF 编码),并且总是需要 4 位数字,不知道x,字符串文字必须括在"double quotation marks"中。
  • PHP 只知道x(需要 1 或 2 位数字)和u(需要任意数量的数字,绑定到 UTF-8 编码)只有在对字符串文字使用"double quotation marks"时。
  • MySQL不知道这些转义序列,字符串文字可以在'single quotation marks'"double quotation marks"中。必须单独使用十六进制文本。这未绑定到使用的任何编码。
  • C++知道x(期望 2 位数字)、u(期望 4 位数字)和U(期望 8 位数字),它们与字符串的文字前缀相结合,然后根据编码产生不同的结果。字符串文字总是在"double quotation marks",单字符文字总是在'single quotation marks'
  • Perl 正则表达式知道x(期望 2 位数字)和N(期望代码点)。不同的正则表达式风格有不同的支持,有些还接受 4 位数字的x。大多数情况下,x绑定到输入编码(有时使用 UTF-8 的u修饰符暗示)。

另请参阅:什么是字符串文本。

相关内容

  • 没有找到相关文章

最新更新