将 iso-8859-1 十六进制转义序列转换为小写
Convert iso-8859-1 hex escape sequence to lowercase
我有这样的字符串:
$str = "\xC4";
根据维基百科,C4
是 Ä
的 ISO-8859-1 十六进制代码。现在我想将此字符串小写以获得 ä
(也在 ISO-8859-1 中)。
我尝试了使用 strtolower
和 mb_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");
//^^^^^^^^^^
输出:
ä
我有这样的字符串:
$str = "\xC4";
根据维基百科,C4
是 Ä
的 ISO-8859-1 十六进制代码。现在我想将此字符串小写以获得 ä
(也在 ISO-8859-1 中)。
我尝试了使用 strtolower
和 mb_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");
//^^^^^^^^^^
输出:
ä