Delphi2010 开发unicode多语言程序,存取乱码,数据库为Oracle11G
操作系统: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程序,用户不用做任何变动,即可存取各种文字。