我有一个带有ucs2_slovenian_ci编码表的MySQL数据库.我想在utf-8编码网页上写表的内容.到目前为止,我试过:
MysqL_set_charset ("utf-8");
MysqL_query("SET NAMES 'utf-8'");
...
<Meta http-equiv="content-type" content="text/html; charset=utf-8" />
...
<?PHP echo utf8_encode($text); ?>
...
我仍在设置奇怪的标志(问号),而不是字母Š,Č,Ž
似乎没什么用.
奇怪的是,用PHP命令MysqL_client_encoding($link)它说我有latin1编码.当我在Firefox中查看页面时,它说UTF-8.怎么了?
请帮忙.
解决方法:
ucs2_slovenian_ci encoding
这不是编码而是整理.排序规则是关于如何排序的信息.
对于您的网站,这甚至没有兴趣,因为这是数据库对自身的了解 – 或者更好:存储在自身中的数据.
对于您的网站脚本,更重要的是告诉您的数据库您需要哪种编码 – 这里:UTF-8.
您通过指定数据库客户端编码来通知数据库服务器.请参阅数据库客户端驱动程序手册如何指定.可能是这样的:
MysqL_set_charset("utf8", $link);
小心:它是utf8而正式它写的是UTF-8.这是MysqL数据库的特殊功能,当您设置该参数时,将UTF-8写为utf8.
不使用:
MysqL_query("SET NAMES 'utf-8'");
因为它已被弃用(不好,请参阅PHP手册和Whether to use “SET NAMES”).
如果你告诉数据库客户端你期望的编码,你不需要编码自己的编码,如下所示:
utf8_encode($text);
删除那些东西,你不需要它.