gpt4 book ai didi

php - mb_detect_encoding 与 Windows-1252 的意外结果

转载 作者:行者123 更新时间:2023-12-05 01:47:47 25 4
gpt4 key购买 nike

我读过维基百科关于 Windows-1252 的文章字符编码。对于字节值<128的字符,应该和ASCII/UTF-8一样。

这是有道理的:

php -r "var_export(mb_detect_encoding(\"\x92\", 'windows-1252', true));"
'Windows-1252'

正确检测到左撇号。

php -r "var_export(mb_detect_encoding(\"a\", 'windows-1252', true));"
假的

嗯?字母“a”不是 Windows-1252?

我运行它的终端被设置为 UTF-8。因此它应该与字母“a”的 ASCII 相同的字节序列。为了最小化变量,如果我指定正确的Windows-1252 字节序列:

php -r "var_export(mb_detect_encoding(\"\x61\", 'windows-1252', true));"
假的

在这些情况下,更改“strict”参数(它有相当无用的文档)没有任何作用。

最佳答案

windows-1252 不支持编码检测。根据mb_detect_order文档:

mbstring currently implements the following encoding detectionfilters. If there is an invalid byte sequence for the followingencodings, encoding detection will fail.

UTF-8, UTF-7, ASCII,EUC-JP,SJIS, eucJP-win, SJIS-win, JIS, ISO-2022-JP

For ISO-8859-,mbstring always detects as ISO-8859-.

For UTF-16, UTF-32, UCS2 andUCS4, encoding detection will fail always.

关于php - mb_detect_encoding 与 Windows-1252 的意外结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22125469/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com