MySQL提供了GBKUTF8存储输出的实现方法
DB:
SQL代码:
复制代码代码如下所示:
创建表(表)
int(10)不为空,
`名字` varchar(50)utf8字符集的整理utf8_general_ci不空,
指数(` g_id `)
)发动机= InnoDB utf8字符集的整理utf8_general_ci;
PHP:
存储操作指定连接校对使用utf8的字符集,而读操作指定为连接设置GBK字符的使用证明。
PHP代码:
复制代码代码如下所示:
< PHP
选择数据库和设置链接使用 / / UTF8
_select_db_utf()函数
{
mysql_select_db(美元-> db_name,美元-> db_link);
init字符
mysql_query(SET NAMES UTF8
mysql_query(设置字符UTF8
mysql_query(设置collation_connection = 'utf8_general_ci '
返回true;
}
选择数据库和设置链接使用 / / GBK
_select_db_gb()函数
{
mysql_select_db(美元-> db_name,美元-> db_link);
init字符
mysql_query(SET NAMES GBK
mysql_query(设置字符集
mysql_query(设置collation_connection = 'gbk_chinese_ci '
返回true;
}
>
需要注意的几个问题:
1。MySQL必须编译成的字符集,例如GB2312,GBK,UTF8等。
2的内容。数据库必须保证是最正确的UTF8编码。
3。存储和读取操作应指定连接校对的正确字符集。
如果前端代码运行数据不能用UTF8,你需要转换的字符。(例如,通过Ajax提交的数据是正确的UTF8,而不是转换。)
因为mb_string支持PHP的最完整的字符,而iconv是比它稍差。mb_string并不完全支持转码的一些特殊的性质,所以没有完美的转码方法为止。
mb_string和iconv再次被比较:
mb_string:
1。支持字符是最完整的
2。内容自动识别编码,而不需要确定原始字符的编码,但执行效率比iconv差多了。
三.内容= mb_convert_encoding美元(美元的内容,UTF-8
Iconv:
1。支持字符不完整
2。要确定原始字符的编码,但执行效率高于mb_convert_encoding在编码的情况下。
三.$content = iconv(GBK