我在使用utf8_encode
解码进行解码时遇到了一个悖论。我有一个带有uft8排序规则的MySQL数据库,其字段具有utf8_general
编码。我在utf8中有我的php文件,在我的HTML页面中,我在标题中指定了utf8字符集。
我的问题是,当我从我的表中选择一个包含重音字符的字段(如èçòùé)并将其回显到浏览器时,我会得到奇怪的字符。
要解决我的问题,我必须回复$description=utf8_encode($imm['description'])
。
我的问题是为什么我不能直接做回声而不必每次都使用uft8_encode
?
答案 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应该不是问题。
来源:我自己也遇到了同样的问题。