操作系统:Win2003 简体中文环境
数据库:ORacle 11G, 字符集为AL32UTF8,应用程序Oracle客户端字符集也设为AL32UTF8
开发工具:Delphi2010
状况描述:(1)使用ADOQuery 查询通过 ORacle SQL Developer插入的泰文,显示为乱码。插入泰文时,存入数据库的为问号,因为Oracle客户端和服务器字符集一致,所以在存储时,两边的字符集未做转换,显示为问号,可能是操作系统不识别泰文,在编辑框中输入泰文是没有问题的,这一块不清楚是如何转换的。(2)通过select dump(字段)from 表名,看到的实际存储值为63,存入中文时,存入的内容为非unicode字符,应该是ansi简体中文编码的,例如,存入中文”汉“,数据库存储的是两个字节,通过ORacle SQL Developer存入"汉"这个汉字,占用的是3个字节,Delphi在存储、读取utf8编码的数据,是不是需要通过一些函数进行转换?(3)查找资料说Delphi2010默认是unicode的,但我这样简单使用写出的程序应该不是unicode的,我将区域与语言选项时,非unicode程序的默认显示语言修改为泰文,Oracle客户端字符集设为泰文字符集,这样字符集转换由Oracle数据库来进行,是可以正确的存取泰文,但是存取中文则编程了乱码。我想知道的是如何使用Delphi2010编写真正的unicode程序,用户不用做任何变动,即可存取各种文字。
数据库:ORacle 11G, 字符集为AL32UTF8,应用程序Oracle客户端字符集也设为AL32UTF8
开发工具:Delphi2010
状况描述:(1)使用ADOQuery 查询通过 ORacle SQL Developer插入的泰文,显示为乱码。插入泰文时,存入数据库的为问号,因为Oracle客户端和服务器字符集一致,所以在存储时,两边的字符集未做转换,显示为问号,可能是操作系统不识别泰文,在编辑框中输入泰文是没有问题的,这一块不清楚是如何转换的。(2)通过select dump(字段)from 表名,看到的实际存储值为63,存入中文时,存入的内容为非unicode字符,应该是ansi简体中文编码的,例如,存入中文”汉“,数据库存储的是两个字节,通过ORacle SQL Developer存入"汉"这个汉字,占用的是3个字节,Delphi在存储、读取utf8编码的数据,是不是需要通过一些函数进行转换?(3)查找资料说Delphi2010默认是unicode的,但我这样简单使用写出的程序应该不是unicode的,我将区域与语言选项时,非unicode程序的默认显示语言修改为泰文,Oracle客户端字符集设为泰文字符集,这样字符集转换由Oracle数据库来进行,是可以正确的存取泰文,但是存取中文则编程了乱码。我想知道的是如何使用Delphi2010编写真正的unicode程序,用户不用做任何变动,即可存取各种文字。
否则中文信息就会显示为:???的
delphi 2010的default_charset应该是UTF-16,你直接将utf-16的值不经转换放入AL32UTF8中自然是错误的。
sgzhou12345
(小蓝鸟贵薪)他确实除了灌水别的就什么都不会了
开发环境是
在MYSQL+DELPHI编程时,就是必须设置“字符集为GT2312”的,
否则中文信息就会显示为:???cm2004
(贫下中农)
你好像就是针对我以后,再好像也没有说出个1,2,3呀
“奇怪了呀,难道你不是高手???”
本人从未说过自己是高手,只是看不惯某些人在技术区灌水骗分来着,另外谁告诉你MYSQL + DELPHI字符集必须是GB2312(小弟不才不知道你说的GT2312是什么字符集,索性我就给改成GB2312吧)才能正常显示中文? 拖出来赏他两大巴掌。SQL的字符集,数据库连接字符集,DELPHI是否支持unicode,操作系统的字符集(DELPHI支持UNICODE且系统支持UNICODE的情况下可以不考虑这点)这4点直接关系是否能正常显示中文