将 iso-8859-1 十六进制转义序列转换为小写

Convert iso-8859-1 hex escape sequence to lowercase

我有这样的字符串:

$str = "\xC4";

根据维基百科,C4Ä 的 ISO-8859-1 十六进制代码。现在我想将此字符串小写以获得 ä(也在 ISO-8859-1 中)。

我尝试了使用 strtolowermb_strtolower 的各种解决方案。 None 他们成功了。每次输出都是乱码

strtolower("\xC4") 工作得很好。问题是您需要使用 ISO-8859-1 编码来解释生成的字节 (xE4),否则您显然会看到垃圾。如果您在浏览器中执行此操作,请设置适当的 header 以提示浏览器使用预期的编码:

header('Content-Type: text/html; charset=iso-8859-1');
echo strtolower("\xC4");

您可以在mb_strtolower()中指定编码,所以只要指定它就可以正常工作:

echo mb_strtolower($str, "ISO-8859-1");
                        //^^^^^^^^^^

输出:

ä