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

pyo*_*yon 3 php string unicode utf-8

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

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

Chr*_*ach 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"); 应该管用.


Joh*_*ker 6

虽然我真的建议保留UTF-8中的所有内容(根据我对该问题的评论),您可以使用mb_convert_encoding函数将任何已知的UTF-8字符串转换为US-ASCII,如下所示:

$asciiString = mb_convert_encoding ($sourceString, 'US-ASCII', 'UTF-8');
Run Code Online (Sandbox Code Playgroud)

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