我听说PHP对Unicode的支持非常差。那么,怎样才能使PHP5构建的应用程序在PHP 5.3+下支持Unicode呢?mbstring是这里唯一的选择吗?Facebook或Yahoo是如何绕过PHP的限制的?
发布于 2011-12-20 18:48:10
PHP没有对任何编码的低级支持。但这实际上意味着它在语言层面上并不关心。PHP中的字符串是原始的字节序列,可以采用您喜欢的任何编码。在处理多字节字符串时,需要注意使用正确的字符串操作函数,而不是直接处理字节流。因此,Unicode唯一的“不支持”是它没有将编码的概念包含到核心语言本身中,但是您仍然可以通过使用适当的字符串函数操作字符串来很好地处理任何编码。
实际上,如果您只需稍微注意将所有内容都保持为UTF-8格式,您就几乎不必担心任何关于编码的事情。PHP可以很好地与Unicode配合使用。
有关此主题的广泛报道,请参阅What Every Programmer Absolutely, Positively Needs To Know About Encodings And Character Sets To Work With Text。
发布于 2011-12-20 18:19:07
PHP对unicode的支持很差,但要做到这一点并不是不可能的,您只需小心使用您正在使用的函数以及它们对Unicode的支持。本页很好地总结了对不同函数和扩展http://www.phpwact.org/php/i18n/utf-8的unicode支持。
发布于 2011-12-20 18:29:03
如果数据来自使用UTF-8的表,您只需设置正确的头和元,就可以了(不需要编码任何内容):
<?php
header ('Content-type: text/html; charset=utf-8');
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
</body>
</html>https://stackoverflow.com/questions/8573612
复制相似问题