gpt4 book ai didi

php - 字符编码问题 UTF-8 和 ISO-8859-1

转载 作者:行者123 更新时间:2023-12-04 00:46:43 26 4
gpt4 key购买 nike

我有一个 Web 应用程序,但在正确显示日文/中文字符时遇到问题。问题是,当我将这些字符硬编码到 HTML 文档中时,我可以正确显示这些字符。

字符如:

アイヌの工芸 : ペンシルバニア大学考古学人類学博物館ヒラーコレクション

但是当我从这个专有数据库中提取它们时,它会变成垃圾:

ã¢ã¤ãã®å·¥è¸ : ãã³ã·ã«ããã¢å¤§å­¦èå¤å­¦äººé¡å­¦åç©é¤¨ãã©ã¼ã³ã¬ã¯ã·ã§ã³

现在我有了 utf-8 编码的 html 文档

<meta http-equiv="content-type" content="text/html; charset=utf-8"/>

实际的 html 文件本身被保存为“以 utf-8 编码”,而不是 ISO-8859-1 或西方拉丁语等。

所以奇怪的是,当我使用 iconv 获取垃圾字符串并将其从 utf-8 转换为 ISO-8859-1 时,它会正确显示。

iconv("UTF-8", "ISO-8859-1//TRANSLIT", $junk_string)

垃圾字符串似乎是 UTF-8,当我将字符串转换为 ISO-8859-1 时,它会正确显示字符。这对我来说根本没有意义。

所以我对我的问题有了某种答案,但我不知道它为什么有效。我认为使用 UTF-8 编码应该可以解决这种问题。我正在使用 Verdana,但尝试了其他几种字体但没有成功。奇怪的是,我可以毫无问题地将字符硬编码到 html 页面中,并且它们显示正常。但是当从数据库中获取相同的数据时,它显示为垃圾,而我没有将编码更改为 ISO-8859-1。

有人知道吗?有没有一种方法可以在单个页面级别上更改它,而不是对从数据库中获取的每条数据都执行此操作?我还尝试将编码更改为

<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1"/>

数据库中的字符仍然不能正确显示。

最佳答案

只是一个猜测,但是当数据库是 utf8 并且 html 文档是 utf8 时,问题很可能是数据库连接,至少在我使用 MySQL 的经验中是这样。

以MySQL(旧版/普通版)为例,打开数据库后需要设置字符集:

mysql_set_charset('utf8');

对于 PDO/MySQL,它会是这样的:

$db->exec('SET CHARACTER SET utf8');

关于php - 字符编码问题 UTF-8 和 ISO-8859-1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8537229/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com