utf8_encode和重音字符困境?

时间:2011-03-30 23:59:17

标签: php mysql encoding utf-8 diacritics

我在使用utf8_encode解码进行解码时遇到了一个悖论。我有一个带有uft8排序规则的MySQL数据库,其字段具有utf8_general编码。我在utf8中有我的php文件,在我的HTML页面中,我在标题中指定了utf8字符集。

我的问题是,当我从我的表中选择一个包含重音字符的字段(如èçòùé)并将其回显到浏览器时,我会得到奇怪的字符。

要解决我的问题,我必须回复$description=utf8_encode($imm['description'])

我的问题是为什么我不能直接做回声而不必每次都使用uft8_encode

2 个答案:

答案 0 :(得分:2)

我猜你的数据库 connection 没有设置为UTF-8 见SET NAMES utf8 in MySQL?

答案 1 :(得分:1)

你需要使用php指定头文件为utf-8。在存储到数据库之前,还要确保字符的格式为utf-8,因为utf_encode将ISO-8859-1字符串编码为UTF-8,这很可能意味着字符存储为ISO-8859-1 in sa utf-8 table。

确保在将这些字符存储在db中之前将这些字符转换为utf-8,然后echo应该不是问题。

来源:我自己也遇到了同样的问题。