PHP是否有任何标准函数可以将Unicode字符串转换为普通的,老式的ANSI字符串(或PHP htmlentities
理解的任何格式?
是否有任何将UTF-8字符串转换为HTML的函数可以被最流行的浏览器理解?
答案 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。