level 5
流浪汉眼中的泪
楼主
今天突然碰到个关于字符集的问题,小白没有老师只能在这里求大家伙答疑解惑.谢谢
环境:windows系统上安装的oracle11Gr2(ps:为什么不是linux,因为不会装)
装oracle的时候字符集选择的是UTF-8:
SQL> select userenv(*language*) from dual;
USERENV(*LANGUAGE*)
--------------------------------------------------------------------------------
SIMPLIFIED CHINESE_CHINA.AL32UTF8
windows我没动过,默认的环境也不懂,环境变量没配,
用的是@xx.sql的方式测试的
测试脚本1:student.sql
select sysdate from dual;
drop table student;
create table student
(
id number,
name varchar2(50)
);
insert into student values (1, *Jason Statham*);
insert into student values (2, *威尔 史密斯*);
insert into student values (3, *赵子龙*);
insert into student values (4, *初阳*);
存储编码类型:ansi

脚本2:student_utf.sql:
内容同上
存储编码类型:utf8

开始测试:
1.ansi, 结果很理想

2. utf8 出现乱码

数据库是直接装载本机上的,所以server端和client端是一个![[阴险]](/static/emoticons/u9634u9669.png)
想请教大家:
1. sqlplus 用的是什么编码?
2. oracle实际存储的是什么编码
3. oracle字符集是utf8,那么student.sql使用ansi方式存储的,那么它在oracle数据库里面是以乱码的形式存放的吗?
4. 如果换一个客户机,以utf8编码的客户机(linux可以设置把),执行这两个脚本的结果与在windows(就我这个)一样吗?
不知道有谁解答一下,谢谢了
2014年08月05日 14点08分
1
环境:windows系统上安装的oracle11Gr2(ps:为什么不是linux,因为不会装)
装oracle的时候字符集选择的是UTF-8:
SQL> select userenv(*language*) from dual;
USERENV(*LANGUAGE*)
--------------------------------------------------------------------------------
SIMPLIFIED CHINESE_CHINA.AL32UTF8
windows我没动过,默认的环境也不懂,环境变量没配,
用的是@xx.sql的方式测试的
测试脚本1:student.sql
select sysdate from dual;
drop table student;
create table student
(
id number,
name varchar2(50)
);
insert into student values (1, *Jason Statham*);
insert into student values (2, *威尔 史密斯*);
insert into student values (3, *赵子龙*);
insert into student values (4, *初阳*);
存储编码类型:ansi

脚本2:student_utf.sql:内容同上
存储编码类型:utf8

开始测试:1.ansi, 结果很理想

2. utf8 出现乱码
数据库是直接装载本机上的,所以server端和client端是一个想请教大家:
1. sqlplus 用的是什么编码?
2. oracle实际存储的是什么编码
3. oracle字符集是utf8,那么student.sql使用ansi方式存储的,那么它在oracle数据库里面是以乱码的形式存放的吗?
4. 如果换一个客户机,以utf8编码的客户机(linux可以设置把),执行这两个脚本的结果与在windows(就我这个)一样吗?
不知道有谁解答一下,谢谢了