这不能正常工作.使用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"); 应该管用.
虽然我真的建议保留UTF-8中的所有内容(根据我对该问题的评论),您可以使用mb_convert_encoding函数将任何已知的UTF-8字符串转换为US-ASCII,如下所示:
$asciiString = mb_convert_encoding ($sourceString, 'US-ASCII', 'UTF-8');
Run Code Online (Sandbox Code Playgroud)
但是,这可能不是无损转换,具体取决于源字符串.(诸如"é"之类的字符将简单地消失在虚空中.)