【发布时间】:2011-03-08 00:14:43
【问题描述】:
我需要一些帮助来了解 utf8 数据在存储在数据库中时的外观。
我正在使用mysql和php,数据库设置为utf8,列“p_name”的排序规则设置为“utf8_unicode_ci”。
当我插入数据时,我通过这个函数传递它
function convert_charset($in_str)
{
$cur_encoding = mb_detect_encoding($in_str) ;
if($cur_encoding == "UTF-8" && mb_check_encoding($in_str,"UTF-8"))
return $in_str;
else
return utf8_encode($in_str);
}
然后将其插入数据库。当我在 php 中读取数据并在浏览器中显示时,我在页面中使用 utf8,并且数据显示正确,但是我怀疑可能有问题。
以法语单词éditez 为例,它应该是这样的。但是,当我查看它时,在我的数据库中,相同的单词被存储为éditez。这是正确的吗?这是 mysql 应该如何存储该单词,还是我设置错误?
这是我已经设置的:
- php.ini --> 设置为 utf8
- 数据库 --> 设置为 utf8
- 表格列 --> 设置为 utf8_unicode_ci
- html 页面 --> 设置为 utf8。
【问题讨论】:
-
尝试将
default-character-set=utf8添加到您的 my.ini 中,然后再次添加您的数据。 -
如何从数据库中检索数据?
-
您似乎试图在不理解 utf-8 的东西上显示 utf-8,那么您如何查看这些数据?
-
@Gumbo:这太疯狂,它可能会起作用......