PHP:将Unicode字符串转换为ANSI字符串

时间:2011-01-14 13:23:22

标签: php string unicode utf-8

PHP是否有任何标准函数可以将Unicode字符串转换为普通的,老式的ANSI字符串(或PHP htmlentities理解的任何格式?

是否有任何将UTF-8字符串转换为HTML的函数可以被最流行的浏览器理解?

3 个答案:

答案 0 :(得分:7)

这无法正常工作。使用Unicode存储的字符比使用ANSI要多得多。 因此,如果您“转换”为ANSI,您将失去许多charackters。

http://php.net/manual/en/function.htmlentities.php

您可以使用带有htmlentities的Unicode(UTF-8)字符集:

string htmlentities ( string $string [, int $flags = ENT_COMPAT [, string $charset [, bool $double_encode = true ]]] )

htmlentities($myString, ENT_COMPAT, "UTF-8");应该有用。

答案 1 :(得分:6)

虽然我确实建议将所有内容保存在UTF-8中(根据我对该问题的评论),您可以使用mb_convert_encoding函数转换任何已知的UTF-8字符串这样的US-ASCII:

$asciiString = mb_convert_encoding ($sourceString, 'US-ASCII', 'UTF-8');

但是,这可能不是无损转换,具体取决于源字符串。 (诸如“é”之类的字符将简单地消失在虚空中。)

答案 2 :(得分:1)

浏览器已经了解UTF-8。如果您希望他们知道您正在向他们发送UTF-8,那么您需要tell them