一. 首先确认你的linux是否设置了支持中文

cat /etc/sysconfig/i18n

其中:

LANG 变量是 language 的简称, 这个变量时决定系统的默认语言, 即系统菜单, 程序的工具栏语言, 输入法默认语言等.

SUPPORTED 变量是 决定系统支持的语言, 即系统能够显示的语言.

SYSFONT 变量是默认的系统字体.

其中 将LANG=“en_US.UTF-8”也是可以显示中文的.

二. 将 securCRT 中设置, 外观-> 字符编码设置成UTF-8 就可以输入中文了. (这部对于secuCRT显示中文是重要的, 上边的1主要是确认当前系统的语言系)

三. oracle 查询的结构, 显示的是问号 ?

虽然现在可以输入中文了, 也可以在 securCRT 的sqlplus下输入中文, 将data保存, 但是当你要显示的时候, 查询出来的却是问号, 但是当你指定 where name=”你好” 时, 数据库能够针对这个条件显示出1行数据, 注意只是1行, 说明查询条件起作用了, 只是显示的问题.

1. 什么是字符集

影响 oracle 数据库字符集最重要的参数是NLS_LANG 参数, 它的格式为:

NLS_LANG=languare_territory.charset 它由三部分组成(语言, 地域和字符集), 其中:

language 指定服务器消息语言,

territory 指定服务器的日期和数字格式

charset 指定字符集

例如 AMERICAN_AMERICA.ZHS16GBK

从NLS_LANG 的组成我们可以看出, 真正影响数据库字符集的其实是第三部分, 所以两个数据库之间的字符集只要第三部分一样就可以相互导入导出数据, 前面影响的只是提示信息.

2. 如何查询 oracle 的字符集

查询 server 端的字符集 : select userenv('language') from dual; -- 结果类似 AMERICAN_AMERICA.ZHS16GBK

查询 dmp 字符集(为了数据库之间的迁移) select nls_charset_name(to_number('0354','xxxx')) from dual; -- 结果类似 ZHS16GBK

查询 client 端字符集 : 在 windows 平台下, 就是注册表里相应 oracle home 的 NLS_LANG, 也可以在dos 里自己设置 set nls_lang=AMERICAN_AMERICA.ZHS16GBK, 这样就只影响这个窗口的环境变量.

在 unix 平台下, echo $NLS_LANG 可以看到字符集, 如果发现client 和 server 端字符集不一样, 就同意修改成 server 端字符集

3. 修改字符集

字符集的转换时从子集到超集受支持. 如果两个字符集根本没有子集和超集的关系, 那么字符集的转换不受 oracle 支持. 另外不建议修改 oracle server 端的字符集.

有3个字符集

1. client 本身系统字符集

2. NLS_LANG 这个应用字符集 ( 比如你在客户端调用了 sqlplus , 那么这个应用会参考这个参数 )

3. server 端字符集

如果出现乱码, 解决方法是:

server 端字符集本身就是 AL32UTF8

将 NLS_LANG 字符集设置成 AL32UTF8 (如果不设置这个参数, 那么这个参数默认就是跟server 端相同的字符集)

将 client本身字符集, 例如 unix 平台的 LANG 设置成 AL32UTF8 或者 AL32UTF8 的子集, 就可以解决乱码问题

在 SG 对应章节, 有子集和超集对应关系表

步骤可以归纳为:1.找到操作系统使用的字符集,并按上表找到对应的字符集名称。2.修改客户端软件的字符集NLS_LANG环境变量设置

SecurCRT 远程linux 输入中文及 oracle 查询出文号问题的更多相关文章

  1. oracle查询出的字段加引号

    SELECT 'list.add("' || t.dummy || '");' as listFROM dual t where rownum < 600; 执行结果: SE ...

  2. Oracle查询出最最近一次的一条记录

    需求:从一个表中查询数据,得到的数据为最新的一条记录. -------------建立测试表 --drop table TB ),dtDate date) -------------插入测试数据 ,' ...

  3. linux shell脚本连接oracle查询数据插入文件和日志文件中

    #!/bin/sh sqlplus "用户名/密码@数据库"<<EOF  或者只有一个库的 :sqlplus "用户名/密码"<<EOF ...

  4. mysql和oracle查询出的一条结果中的多个字段拼接

    1,mysql concat('a','b','c')和concat_ws('a','b','c')的区别:前者如果有某个值为空,结果为空;后者如果有某个值为空,可以忽略这个控制 SELECT con ...

  5. SSH Secure Shell Client连接Linux 命令行显示中文乱码问题 和oracle 查询数据中文乱码问题

    一.SSH Secure Shell Client连接Linux 命令行显示中文乱码问题 linux 设置系统语言 修改 /etc/sysconfig/i18n 文件,如 LANG="en_ ...

  6. oracle查询中文数据出现乱码

    首先,在oracle中,输入select userenv('language') from dual,查询出oracle使用的编码方式,我的是SIMPLIFIED CHINESE_CHINA.ZHS1 ...

  7. linux下QtCreator无法输入中文的情况

    解决linux下QtCreator无法输入中文的情况 本文由乌合之众 lym瞎编,欢迎转载 blog.cnblogs.net/oloroso 本文由乌合之众 lym瞎编,欢迎转载 my.oschina ...

  8. 解决Qt程序在Linux下无法输入中文的办法

    解决Qt程序在Linux下无法输入中文的办法 一位网友问我怎样在Linux的Qt的应用程序中输入中文,我一開始认为不是什么问题,可是后面自己尝试了一下还真不行.不仅是Qt制作的应用程序,就连Qt Cr ...

  9. Kali Linux安装中文输入法全纪录

    前言: 我使用的是英文版的Kali,默认没有安装中文输入法,也没有安装小企鹅(我后来才知道),折腾了很久,现在终于可以在Kali里输入中文了(这篇文章就是在Kali里面用leafpad写的).安装的过 ...

随机推荐

  1. 【记录一下】phpMyAdmin 4.5.0-beta1 发布,要求 PHP 5.5

    详情点击: [开源中国]http://www.oschina.net/news/65696/phpmyadmin-4-5-0-beta1 [phpMyAdmin]https://www.phpmyad ...

  2. UdpClient类客户端和服务端demo

    服务端demo static IPEndPoint ipe = new IPEndPoint(IPAddress.Any, 0); static UdpClient udp = new UdpClie ...

  3. ThreadPoolExecutor 的三种提交任务方式

    学习内容: ExecutorService线程池的应用... 1.如何创建线程池... 2.调用线程池的方法,获取线程执行完毕后的结果... 3.关闭线程...   首先我们先了解一下到底什么是线程池 ...

  4. flask的文件上传和下载

    http://flask.pocoo.org/docs/1.0/api/ http://docs.jinkan.org/docs/flask/api.html?highlight=download h ...

  5. http://jingyan.baidu.com/article/dca1fa6fa07000f1a44052f6.html

    http://jingyan.baidu.com/article/dca1fa6fa07000f1a44052f6.html

  6. 在windows下部署laravel项目的步骤

    laravel版本:5.4 php版本:7.1以上,我用的php7.2.7 1.代码库下载laravel源码,放在你自己的运行目录下 2.配置hosts域名及 apache域名配置 3.安装compo ...

  7. MySQL Win7 64位 下载、安装与配置图文教程

    MySQL是目前十分流行的一种关系型数据库管理系统.官网推出的安装包有两种格式,分别是:ZIP格式和MSI格式.其中MSI格式的可以直接点击安装,按照它给出的安装提示进行安装,一般MySQL将会安装在 ...

  8. mysql 5.6 修改root原始密码不为空方法

    mysql 5.6安装好之后,是默认root用户的密码为空的,此时为了安全性需要修改密码不为空,修改方法为: cmd或者mysql 5.6 command line client登陆之后,输入一下命令 ...

  9. ipv6 dns list

    ip v6 DNS list: 将首选DNS服务器地址填上2001:778::37 备用DNS服务器地址填上2001:df8:0:7::1

  10. 设置客户端连接PostgreSQL不需要密码

    平常工作中,有时需要远端连接 PostgreSQL 数据库做些维护,例如远端备份等:如果备份脚本写在远端机器,备份的时候会弹出密码输入提示,那么脚本就不能后台执行,这里总结了几种不弹出密码输入提示的方 ...