我需要验证缓冲区是否包含有效的 UTF-8 数据。
\n\n在 Python 中,我可以通过简单地尝试解码字节并检查异常来完成此操作。\n在下面的示例中,我尝试解码编码的 \'\xc2\xa2\' 的第一个字节。异常告诉我缺少字节。
\n\nPython 3.3.2 (v3.3.2:d047928ae3f6, May 16 2013, 00:03:43) [MSC v.1600 32 bit (Intel)] on win32\nType "help", "copyright", "credits" or "license" for more information.\n>>> s = \'\xc2\xa2\'\n>>> s_bytes[:1].decode()\nTraceback (most recent call last):\n File "<stdin>", line 1, in <module>\nUnicodeDecodeError: \'utf-8\' codec can\'t decode byte 0xc2 in position 0: unexpected end of data\nRun Code Online (Sandbox Code Playgroud)\n\n这种方法在 Node.js 中不起作用,因为解码更加宽容。
\n\n> s = \'\xc2\xa2\'\n\'\xc2\xa2\'\n> s_buffer = Buffer(s)\n<Buffer c2 a2>\n> s_buffer.toString(\'utf8\', 0, 1)\n\'?\'\n>\nRun Code Online (Sandbox Code Playgroud)\n\n我检查了Buffer API 页面,但找不到任何根据编码验证缓冲区的方法。
\n| 归档时间: |
|
| 查看次数: |
991 次 |
| 最近记录: |