我有这个字符串:
dsfssdsdfdsf«ظ...ط¯ظظ†طط©طظ...ط¯ط§ظ“ط®ظط§ط¬ط©
它以UTF-8编码,我从远程页面中提取它,我使用file_get_contents函数获取它的内容,远程页面编码为UTF-8,
现在我想将这个字符串插入数据库,它的表编码是latin1,将其显示到具有charset ISO-8859-1的html页面,
我多次尝试将其编码从UTF-8转换为ASCII,或转换为ISO-8859-1以及其他编码如Windows-1256,但它没有成功,字符串出现奇怪的字符,请注意默认字符串包含阿拉伯字符
编码失败结果的示例:
dsfssdsdfdsfÃ,Â〜øâ€〜Ã,ïÂÃ〜¸Ã<¢〜ÃÀ€ © Ã~·Ã,£Ã~·Ã,ÂÃ~¸â€Â|Ã~·Ã,¯ Ã~·Ã,§Ã~¸â€žÃ~·Ã,®Ã~¸Ã
dsfssdsdfdsf«ãÏæäÉÃÍãÏÇáÎæÇÌÉ
答案 0 :(得分:6)
如果您有UTF-8字符串,请将它们以UTF-8或二进制形式存储到数据库中,因此数据库应该有一个不会更改其编码的列。使用ISO-8859-1编码会破坏字符串。
在具有ISO-8859-1编码的HTML页面中,将数据库中的字符串重新编码为ISO-8859-1以获取所支持的字符以及所有其他字符,请使用HTML实体。在PHP中的函数能够mb_convert_encoding
:
$usascii = mb_convert_encoding($utf8, 'HTML-ENTITIES', 'UTF-8');