改變學習日記的字符集總結,查詢utf數據庫?

版权声明:本文章为学习日记网站(http://www.learndiary.com )版权所有,以<a href="http://creativecommons.org/licenses/by/2.0/">Creative Commons License</a>方式授权。欢迎转载,但请注明文章原始出处(http://www.learndiary.com/disDiaryContentAction.do?goalID=1242 )。

 

  1、想在学习日记中(http://www.learndiary.com)贴繁体字的文章,结果是乱码;

  2、先改为GBK,可是不知道为什么,用GBK写到数据库中和页面上的字符都自动加了转义符了(\),如:(")变成了 (\"),还有,原来,文本里的回车换行都被加上了转义,于是,在网页上连换行都不行了,如:(\r\n)自动变成了(\\r\\n)。到现在,我也不知道这是什么原因,先放在这里,等以后再学习;

  3、看了jive3论坛,发现程序使用的字符集与mysql使用的默认字符集好像是无关的(究竟有没有关,还须进一步学习:),学习日记虚拟主机空间默认使用的是gb2312;于是,试着在数据库连接字符串用utf-8的characterEncoding=UTF-8;结果成功可以使用;

  4、原来数据库中的数据是gb2312编码的,必须转成utf-8。我用了一个笨办法,先把数据中的数据导出成sql文件,把sql文件全部用ultraedit(旧版本的不行,我下了一个最新的 11烈火版)转成utf-8格式;

  5、但是把转换后的sql文件重新导入数据库中出错,不知道为什么,偶然发现在用ultraedit转成的sql文件中的两个字段间缺了一个单引号',前一个字段后有一个?号,像:本该是这样的('学习','日记'),变成了('学?,'日记'),我想这是转码过程中出现的问题,问题是怎么一回事?现在还不清楚,以后学习;

  6、用ultraedit查找替换掉错误的地方,导入成功;

  7、导入后的数据有的被截掉了尾巴,原来是在utf-8编码中,一个汉字是3个字节,一个英文字符是1个字节,于是,原来的数据库字段长就不合适了;

  8、修改字段长度,然后把sql文件像上面那样转码、修改、导入。

  9、完成,可以用繁体字写日记了。

  10、缺陷:无法在数据库中直接用中文关键字执行查询了,也不能直接看到数据库中的内容了,不知道怎么解决这个问题?以后再学习。