SQL_ASCII字符集处理乱码

大大们:
我们项目中新使用了postgresql数据库.
看他的服务器配置 字符集编码client_encoding 是SQL_ASCII

之前没使用过这种编码. 今天用pg数据的客户端插入一些中文进去之后,

使用pg自带的查询器查询是中文.

不过使用java程序读的时候,就是乱码了.. 这种情况,怎么转码,从数据库到java.
[b]问题补充:[/b]

数据库不是我能控制的撒...

[b]问题补充:[/b]

偶的java类文件编码是UTF-8

数据库是sql_ascii.

如果向数据库插入中文的话. 是乱码.
String str = "中文";
str = new String(str.getBytes("ascii"),"UTF-8");

也不行
[b]问题补充:[/b]

感动呵~

我大概明白你的意思的了. 在存取的时候, 把字符集在目标字符集和ascii字符集之间转换.

你的方法我试过了~ 非常遗憾,仍没能解决问题.

明天找下DBA, 试图让他来帮我解决办法,或者说法他~ 呵~
[b]问题补充:[/b]

DBA尝试了下UTF-8的数据库, 对java的存取中文是OK的.

不过从老数据库要迁移数据过来的时候, 数据库挂掉了.

正在处理问题中..

数据库导出的文件里的语句里 应该有创建表时候指定的字符集吧 是在不行 把数据库文件里的字符集都改了 再导入 。。。但是要是文件很大的话 就得切分文件再修改了 要不以文本形式打不开 太大了

不要用SQL_ASCII, 用UNICODE

http://www.pgsqldb.org/pgsqldoc-cvs/multibyte.html

乱码问题主要来源于字符集统一 比如说你要读取的时候 你可以以流的形式传递byte数组 最后 用String有一个可以指定byte数组字符编码的构造器 String(byte[],charset) eg: String a = new String(target.getBytes("ascii"),"gbk");

String str = "中文";
str = new String(str.getBytes("ascii"),"UTF-8");
这是从数据库取时候用的 如果是插入的话 应该是str = new String(str.getBytes(),"ascii");然后再把str插入 要是还不行的话 就转成iso8850-1实验下

最好的办法是改数据库的编码啊 在创建的时候指定字符集 在创建表的时候也指定字符集 。。。。

发错了 iso8859-1

问题解决了么? 问DBA了么?最后是怎么弄的?