公司又把csdn开放了,更新好久没有写的blog,也把最近一段时候的积累写出来。
首先说说数据库编码的问题吧,postgre 8.3在创建数据库的时候,默认的设置为utf-8,如果你对字符编码的关系不是很了解,可以查查相关的资料,有很多。
但是,在windows上,至少我们的机器,默认的编码方式都不是utf-8的,所以就产生了一个问题,写sql语句,中间带有中文的时候,postgre 的client_code方式为utf-8,它识别不出来非utf-8的中文。在中国,一般情况下都是gb2312。
我的解决办法就是在插入时候,全部将postgresql的client_code设置为utf-8,然后将sql语句的编码方式改为utf-8,这样即使数据库本身是sql_ascii的。这个是参考pgadmin这个开源的可视化工具想到的。他里面的wxstring都提供直接转换到utf-8功能,而且pgadmin本身不管数据库是什么编码方式,都是可以正确显示的。
编码转换的函数网上有很多,windows api的,libiconv也不错,不过自己还没有调试出libiconv。发现windows下用开源的东东都麻烦,有时间多学学linux吧,罗嗦一下
首先说说数据库编码的问题吧,postgre 8.3在创建数据库的时候,默认的设置为utf-8,如果你对字符编码的关系不是很了解,可以查查相关的资料,有很多。
但是,在windows上,至少我们的机器,默认的编码方式都不是utf-8的,所以就产生了一个问题,写sql语句,中间带有中文的时候,postgre 的client_code方式为utf-8,它识别不出来非utf-8的中文。在中国,一般情况下都是gb2312。
我的解决办法就是在插入时候,全部将postgresql的client_code设置为utf-8,然后将sql语句的编码方式改为utf-8,这样即使数据库本身是sql_ascii的。这个是参考pgadmin这个开源的可视化工具想到的。他里面的wxstring都提供直接转换到utf-8功能,而且pgadmin本身不管数据库是什么编码方式,都是可以正确显示的。
编码转换的函数网上有很多,windows api的,libiconv也不错,不过自己还没有调试出libiconv。发现windows下用开源的东东都麻烦,有时间多学学linux吧,罗嗦一下