PHP内部编码

标签 php encoding

根据 bin2hex,我的 PHP 在内部使用 UTF-8:

echo bin2hex("ö"); -> c3b6 (utf-8)
echo bin2hex(utf8_decode("ö")); -> f6 (ISO-8859)

但是 mb_internal_encoding() 和 iconv_get_encoding() 都说它是 ISO-8859-1。

echo mb_internal_encoding(); -> ISO-8859-1
var_dump(iconv_get_encoding()); ->  ["input_encoding"]=>  string(10) "ISO-8859-1"  ["output_encoding"]=>  string(10) "ISO-8859-1"  ["internal_encoding"]=>  string(10) "ISO-8859-1"

UTF-8 似乎显然是它使用的那个,但为什么它仍然显示 ISO-8859-1?

最佳答案

这一点也不奇怪。您的第一个检查是引号之间的内容。我假设您已使用 UTF-8保存 文件,这意味着您的字符串中有两个字节。这并不意味着内部编码是 UTF-8,只是字符串中有这两个字节。

关于PHP内部编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12710842/

相关文章:

PHP 警告 - 非法字符串偏移

asp.net - 对字符进行编码

html - libxml2 -> HTMLparser.h -> htmlReadMemory 中编码的可能值是什么

c# - 如果分区键包含感叹号,Azure 存储查询不会返回数据

sockets - Flutter/Dart套接字通信,字符编码问题

java - 如何转换特殊字符, "Fran%c3%a7ais"-> "Français"?

php - 执行MySQL查询时如何获取错误值?

php - 限制 shell_exec 的执行时间

php - 你能看到逻辑错误吗

php - docker build: fatal error :找不到类 'Memcached'