0

我有一个瑞典网站,每当我在代码中写 åäö 时,它都会在网站上显示为 åäö,但是当我在数据库中输入 åäö 时(例如“描述”列中的文本),它会输出一个带有网站上的问号。

我试过了

<meta http-equiv="content-type" content="text/html" charset="UTF8" />

<?php header("Content-type: text/html; charset=utf-8");?>

SET NAMES 'utf8'

以及所有可能的字符集(感觉就像),但它不起作用。

MySQL 连接排序规则是 utf8_bin,表列的排序规则是 utf8_swedish_ci。帮助?

编辑:如果我编辑 php.ini 文件有

default_charset = "utf8_unicode_ci"

并将元数据更改为

<meta http-equiv="content-type" content="text/html" charset="UTF-8_general_ci" />

åäö 正确显示,但文件中代码中的 åäö 显示为 ä。

EDIT2:嗯, mysqli_set_charset($connection, 'utf8'); 解决了我的问题。

4

1 回答 1

0
  1. <meta http-equiv="content-type" content="text/html" charset="UTF8" />是错的。应该是UTF-8

  2. 不要使用set names. 改为使用mysql_set_charset('utf8',$db);

  3. 检查您的表是否具有正确的编码。

  4. 检查您的源代码文件是否已UTF-8编码。

PS。请注意,排序规则与编码不同。您需要设置表编码,而不是排序规则。整理与正确的输出编码无关。

于 2013-10-27T01:52:42.817 回答