字符集编码问题
有时数据库字符集和客户端字符集会出现不相同的情况,此时涉及转码。用户发现插入数据库和查询得到的值不一致(可能为乱码)。
解答
- 方法1:更改两端中的任一端使二者字符集一致。
- 方法2:如做不到字符集转换一致,则必须转码,保证转码的一致性。
说明:
入库时转码了,那么出库时也需要转码;入库时没有转码,出库时也不要转码。 如章节CLOB大对象的插入及查询示例代码和BLOB大对象的插入及查询示例代码中的两种LOB类型的数据的入库和出库操作,CLOB以SQL_C_CHAR的方式绑定进入数据库,如果客户端和服务端的编码不同,则转码后再入库,出库时,CLOB转码再出库。而BLOB类型的数据以SQL_C_BINARY的方式绑定进入数据库,二进制入库不需转码,出库时,二进制文件不需要转码。但如果CLOB以SQL_C_BINARY的方式绑定进入数据库,二进制入库不需转码,出库时,服务端与客户端的字符集不同时,CLOB出库时转码,如有中文或其他特殊字符则会造成乱码问题。