数据库中的字符集编码问题
流行的关系数据库系统都支持数据库字符集编码也就是说在创建数据库时可以指定它自己的字符集设置数据库的数据以指定的编码形式存储当应用程序访问数据时在入口和出口处都会有字符集编码的转换对于中文数据数据库字符编码的设置应当保证数据的完整性GBGBKUTF 等都是可选的数据库字符集编码;当然我们也可以选择 ISO (bit)只是我们得在应
用程序写数据之前先将 Bit 的一个汉字或 Unicode 拆分成两个 bit 的字符读数据之后也需要将两个字节合并起来同时还要判别其中的 SBCS 字符因此我们并不推荐采用 ISO 作为数据库字符集编码这样不但没有充分利用数据库自身的字符集编码支持而且同时也增加了编程的复杂度编程时可以先用数据库管理系统提供的管理功能检查其中的中文数据是否正确
PHP 程序在查询数据库之前首先执行 mysql_query(SET NAMES xxxx); 其中 xxxx 是你网页的编码(charset=xxxx)如果网页中 charset=utf则 xxxx=utf如果网页中 charset=gb则xxxx=gb几乎所有 WEB 程序都有一段连接数据库的公共代码放在一个文件里在这文件里加入 mysql_query(SET NAMES xxxx) 就可以了
SET NAMES 显示客户端发送的 SQL 语句中使用什么字符集因此SET NAMES utf 语句告诉服务器将来从这个客户端传来的信息采用字符集 utf它还为服务器发送回客户端的结果指定了字符集(例如如果你使用一个 SELECT 语句它表示列值使用了什么字符集)
[] [] [] []