Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何解码UTF-8文本序列\ud83e\udd14_Utf 8_Utf 16 - Fatal编程技术网

如何解码UTF-8文本序列\ud83e\udd14

如何解码UTF-8文本序列\ud83e\udd14,utf-8,utf-16,Utf 8,Utf 16,我正在阅读包含“\ud83e\udd14”的UTF-8文本。阅读规范时,说明未使用U+D800至U+DFFF。然而,如果我通过一个解码器,比如微软的System.Web.Helpers.Json.Decode,它会产生一个舌头伸出的脸的表情符号的正确结果。文本来源于Twitter的搜索api 我的问题是:这个序列应该如何解码?我在寻找最终的十六进制序列是什么,以及它是如何获得的。谢谢你的指导。如果我的问题不清楚,请让我知道,我会努力改进。我想我会仔细阅读UTF-16,看看它是否给了我任何线索,结

我正在阅读包含“\ud83e\udd14”的UTF-8文本。阅读规范时,说明未使用U+D800至U+DFFF。然而,如果我通过一个解码器,比如微软的System.Web.Helpers.Json.Decode,它会产生一个舌头伸出的脸的表情符号的正确结果。文本来源于Twitter的搜索api


我的问题是:这个序列应该如何解码?我在寻找最终的十六进制序列是什么,以及它是如何获得的。谢谢你的指导。如果我的问题不清楚,请让我知道,我会努力改进。

我想我会仔细阅读UTF-16,看看它是否给了我任何线索,结果发现这就是它所谓的代理对。解码的十六进制公式为:

(H-D800)*400+(L-DC00)+10000

其中H为第一(高)码点,L为第二(低)码点

因此\ud83e\udd14变为1f914


显然,UTF-8解码器必须预测UTF-16代理对。

我想我应该仔细阅读UTF-16,看看它是否给了我任何线索,结果发现这就是它所谓的代理对。解码的十六进制公式为:

(H-D800)*400+(L-DC00)+10000

其中H为第一(高)码点,L为第二(低)码点

因此\ud83e\udd14变为1f914


显然,UTF-8解码器必须预测UTF-16代理项对。

您从一个有趣的角度来看这一点。首先要注意的是,您正在处理两个级别的文本:JSON文档和其中的字符串

简介:您不需要编写代码来解码它。使用将JSON反序列化为对象的库,如Newtonsoft


但是,首先是Unicode。Unicode是一个有点历史的字符集。与几乎所有字符集不同,1)它有不止一种编码,2)它仍在增长。几十年前,你从一个有趣的角度来看这个问题。首先要注意的是,您正在处理两个级别的文本:JSON文档和其中的字符串

简介:您不需要编写代码来解码它。使用将JSON反序列化为对象的库,如Newtonsoft


但是,首先是Unicode。Unicode是一个有点历史的字符集。与几乎所有字符集不同,1)它有不止一种编码,2)它仍在增长。几十年前,它有“UTF-8解码器必须预测UTF-16代理对”,不,这是两个独立的步骤。请参阅我的。@TomBlodget See-不是权威性的,但肯定是另一个观点相反的数据点。@tripleee那篇文章没有提到UTF-8。这是JavaScript源代码的级别,而不是存储在其中的编码。但是问题提到了JSON,它是基于JavaScript的。@tripleee当然。但UTF-8解码器只解码UTF-8,而不管结果文本的用途和格式如何。这个问题混合了UFT-8、JSON、UTF-16转义和代理代码点。它们需要分开。“UTF-8解码器必须预测UTF-16代理对”,不,这是两个独立的步骤。请参阅我的。@TomBlodget See-不是权威性的,但肯定是另一个观点相反的数据点。@tripleee那篇文章没有提到UTF-8。这是JavaScript源代码的级别,而不是存储在其中的编码。但是问题提到了JSON,它是基于JavaScript的。@tripleee当然。但UTF-8解码器只解码UTF-8,而不管结果文本的用途和格式如何。这个问题混合了UFT-8、JSON、UTF-16转义和代理代码点。它们需要分开。你提到的问题的可能重复是关于Unicode码点如何变成两个码点。我的问题是相反的:从两个码点开始并对其进行解码。您提到的可能重复的问题涉及Unicode码点如何变成两个码点。我的问题是相反的:从两个码点开始解码。谢谢汤姆。你的解释很有帮助。谢谢汤姆。你的解释有帮助。