Encoding 为什么此字符的ASCII表示返回为226 128 153?

Encoding 为什么此字符的ASCII表示返回为226 128 153?,encoding,character-encoding,char,ascii,Encoding,Character Encoding,Char,Ascii,所以我在玩这个工具: 当我尝试这个角色时: ' 我看到值039,可通过以下方式验证: 但我很好奇: ’ 同一工具中的此字符将返回:226 128 153 但据我所知,ASCII是8位(甚至是7位…) 这里是什么 似乎这就是UTF16表示法。可能该网站正在使用“'”将字符转换为其代码表示形式。charCodeAt(0)在Javascript中,第一个字符是ASCII,代码39。第二个是UNICODE字符,代码8217 请参见,特别是关于 有关更多信息,请阅读本文 $(文档).ready(函

所以我在玩这个工具:

当我尝试这个角色时:

'
我看到值039,可通过以下方式验证:

但我很好奇:

同一工具中的此字符将返回:226 128 153

但据我所知,ASCII是8位(甚至是7位…)


这里是什么

似乎这就是UTF16表示法。可能该网站正在使用
“'”将字符转换为其代码表示形式。charCodeAt(0)在Javascript中,第一个字符是ASCII,代码39。第二个是UNICODE字符,代码8217

请参见,特别是关于

有关更多信息,请阅读本文

$(文档).ready(函数(){
$('#res').html(“'.”.charCodeAt(0));
})

您拥有的字符是,这也是在大多数位置表示撇号的正确印刷方式

该站点所做的是用UTF-8表示字符。正如您在我链接的页面中看到的,此字符编码为三个字节,
0xE2 0x80 0x99
为十六进制,或226 128 153为十进制

该页面使用UTF-8而不是ASCII的原因是什么?简单。首先,ASCII是UTF-8的子集。其次,UTF-8支持整个Unicode。因此,如果可以使用UTF-8,那么很少有理由使用ASCII。

我也有同样的问题(尝试将字符串转换为大写,遇到了这个字符,它“破坏”了一系列将带有特殊字符的字符串转换为大写的方法)

我使用了这个解决方案:

    $text = preg_replace("/[`‛′’‘]/u", "'", $text);
(不是我的-取自此处:)


然后将其转换为普通逗号,您可以对其执行普通的php函数。

所讨论的字符不是ASCII字符。