我正在运行 Windows 10家庭单一语言64位操作系统的笔记本电脑上使用 PHP 7.2.11 。
我已经使用最新版本的 XAMPP 安装了 Apache / 2.4.35(Win32)和PHP 7.2.10 。
我在下面的代码中键入了一个名为 demo.php 的文件:
<?php
$string1 = "Hel\xE1lo"; //Tried hexadecimal equivalent code-point from ISO-8859-1
echo $string1;
?>
在我的网络浏览器中运行上述程序后,它给了我以下输出:
Hel�lo
然后,我对上述程序进行了小幅更改,并重新编写了如下代码:
<?php
$string1 = "Hel\xC3\xA1lo"; //Tried hexadecimal equivalent code-point from UTF-8, C form
echo $string1;
?>
在对我的Web浏览器进行一些更改之后运行相同的程序后,它在输出下面显示了(意想不到的结果):
Helálo
所以,看完这些东西后,我的脑海里浮现了疑问。
我想知道PHP中是否有内置函数或某种机制可以告诉我当前文件中使用了哪种字符编码标准?
P.S。 : 我知道在PHP中,字符串将以脚本文件中编码的任何方式进行编码。我想知道是否存在一些内置函数,某种机制或任何其他方式可以告诉我所考虑文件中使用的字符编码标准。
答案 0 :(得分:0)
此功能必须位于要确定其编码的同一文件中。
//return 'UTF-8', 'iso-8859-1',.. or false
function getPageCoding(){
$codes = array(
'UTF-8' => "\xc3\xa4",
'iso-8859-1' => "\xe4",
'cp850' => "\x84",
);
return array_search('ä',$codes);
}
echo getPageCoding();