思路:

出现乱码问题肯定使由于编码不一致导致的。我们需要查看各处的编码是否一致,不一致的我们要修改为相同值。

解决步骤:

我们思考,这里涉及的编码三个:

1、数据库编码类型:
登录数据库,用以下命令select userenv('language') from dual; 查询数据库编码方式为:
在这里插入图片描述
这里看到数据库编码为GBK
2、dos窗口编码方式:
在dos窗口边框上右键—》属性可以看到:
在这里插入图片描述
也是GBK

3、客户端oracle使用的编码方式:
只要修改客户端的编码方式和数据库相同就行了,设置环境变量:
在这里插入图片描述
这样乱码问题就解决了。
当然也可以通过修改注册表的方式修改NLS_LANG的值。

注:NLS_LANG是什么?(参考文章:http://blog.csdn.net/pan_tian/article/details/7745717)

NLS:‘National Language Support (NLS)’ 当我们设定一种nls的时候实际上我们是为oracle在存放数据时指定了他的语种所特有的一些表达形式,比如我们选择chinese,那么它的中文字符如何存放,按什么规则排序,货币如何表示,日期格式也就被设定了。
NLS_LANG参数由以下部分组成: NLS_LANG=_.
NLS_Language 指定:

  • Oracle(错误)信息的语言
  • 日和月份的名称
    注意:NLS_LANGUAGE与插入和查询的数据的语言无关。
    NLS_Territory 指定:
  • 货币和数字格式
  • 计算星期和天数的范围和惯例

更多推荐