`

【字符集】处理Toad显示乱码及Windows XP下无法插入“某些汉字”问题

阅读更多

在数据库服务器字符集为AL32UTF8,我们来思考并处理一下Windows XP环境下的Toad工具显示字符为乱码的问题。

1.鉴于《【字符集】“客户终端字符集”、“NLS_LANG”环境变量以及“数据库字符集”》http://space.itpub.net/519536/viewspace-615345提到的“Toad同学”显示不稳定的现象,这里给出一个处理方法。

2.先列一下上面文章中得到的几个结论:
1)如果有可能,尽量保证客户端编码(Windows XP的cmd工具可以使用chcp命令来确认)、NLS_LANG参数和数据库字符集这三个内容一致,这样设置,无论是从性能上,还是从防止编码转换上都是最佳的;
2)如果目的是支持中文,数据库Server端的字符集应该尽量选择ZHS16GBK或AL32UTF8字符集,这样可以减少因不当的“转码”导致的字符乱码故障;
3)(推荐)可已将NLS_LANG参数与操作终端字符编码一致,这样可以保证数据库能正确获得应用终端使用的编码,这时会发生“编码转换”,但是,这样就可以保证正确转码,可以防止错误的编码存入数据库;
4)(不推荐)也可以将NLS_LANG参数与数据库服务器端的编码一致,这样,客户端无论是发送到服务器端还是从服务器接收数据都不会“转码”,这样能保证客户端对字符的显示效果,但是,一定要小心,这时数据库服务器上存放的字符编码很可能是错误的。
5)PL/SQL Developer工具在AL32UTF8字符集下貌似可以保证数据效果,但是“Toad同学”貌似不太“稳定”。

3.如果您仔细探究一下,乱码的成因很单纯:“乱码”来自于“转码”!

4.因为Windows XP系统的字符集是936,也就是中文字符集GBK,这个字符集在Oracle中对应的就是ZHS16GBK,鉴于上面提到的结论“2)”和结论“3)”,所以就有了这个所谓的“折中式”处理方法:将Windows XP注册表中的NLS_LANG参数修改为AMERICAN_AMERICA.ZHS16GBK,以便保证与Windows XP这个操作终端的字符集一致。这样,在每次存取数据的时候都会发生转码,目的是在数据库Server端不会存入错误的编码。请参考下面的确认和修改方法。
1)Windows XP字符集确认方法:
C:\>chcp
Active code page: 936
代码页936就是中文字符集GBK,可以参考msdn的资料《Windows Codepage 936》
http://www.microsoft.com/globaldev/reference/dbcs/936.htm

2)Windows XP环境Oracle的NLS_LANG参数修改流程:
Windows键+R进入到Run对话框,输入“regedit”进入到注册表
导航:HKEY_LOCAL_MACHINE --> SOFTWARE --> ORACLE --> KEY_OraDb_home1
右侧找到NLS_LANG参数,修改为AMERICAN_AMERICA.ZHS16GBK。如果没有这个参数,请自行创建。

5.这样修改后,还带了了一个副作用(是“副作用”,不是“负作用”,意为另外一个好的结果):
在修改NLS_LANG为AMERICAN_AMERICA.ZHS16GBK之前,该参数为AMERICAN_AMERICA.AL32UTF8,是与数据库Server端保持一致的,虽然这样设置不会发生转码的现象,但是在Windows的cmd环境下会出现“一些汉字”(大部分可以)汉字无法录入的问题,现象如下:
C:\>sqlplus sec/sec@DB_AL32UTF8

SQL*Plus: Release 10.2.0.1.0 - Production on Wed Sep 23 10:57:21 2009

Copyright (c) 1982, 2005, Oracle.  All rights reserved.


Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - 64bit Production
With the Partitioning, Oracle Label Security, OLAP and Data Mining Scoring Engine options

sec@ora10g> drop table t purge;

Table dropped.

sec@ora10g> create table t (x varchar2(10 char));

Table created.

sec@ora10g> insert into t values ('侯');
ERROR:
ORA-01756: quoted string not properly terminated

这只是一个影响,另外一个著名的影响就是加中文comments的时候也报这样的错误
sec@ora10g> comment on table t is '侯';
ERROR:
ORA-01756: quoted string not properly terminated

OK,问题现象描述清楚了,下面我们修改NLS_LANG参数为AMERICAN_AMERICA.ZHS16GBK,也就是保持和XP系统的字符集一致。
注意:需要重新进入以下SQLPLUS环境
C:\>sqlplus sec/sec@DB_AL32UTF8

SQL*Plus: Release 10.2.0.1.0 - Production on Wed Sep 23 11:05:07 2009

Copyright (c) 1982, 2005, Oracle.  All rights reserved.


Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - 64bit Production
With the Partitioning, Oracle Label Security, OLAP and Data Mining Scoring Engine options

sec@ora10g> insert into t values ('侯');

1 row created.

sec@ora10g> comment on table t is '侯';

Comment created.

sec@ora10g> col DUMP(X) for a30
sec@ora10g> select x,dump(x) from t;

X                    DUMP(X)
-------------------- ------------------------------
侯                   Typ=1 Len=3: 228,190,175

效果非常的明显吧,dump后的结果也很清楚的表名,“侯”这个字已经被“转码”到AL32UTF8格式的了。

6.小结
通过这个实验我们妥善处理了两个实际问题,如果您没有遇到过,恭喜您,您很幸运。
1)Toad显示字符乱码问题
2)Windows XP环境或Toad环境下无法插入“某些汉字”和comments的问题

Good luck.

 

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/strawbingo/archive/2010/04/07/5458292.aspx

分享到:
评论

相关推荐

    TOAD导出EXCEL文件时中文乱码解决办法.txt

    具体到TOAD导出Excel文件的情况,当TOAD内部处理的字符集与Excel期望的字符集不一致时,中文字符就会显示为乱码。 #### 解决方案 1. **设置TOAD导出选项**: - 在TOAD中执行查询后,选择“导出”功能。 - 在弹出...

    Toad中文导出到Excel的乱码解决办法

    若选择“XLS Instance”,由于它与Excel实例直接交互,中文字符的处理通常更加准确,因此较少出现乱码问题。 需要注意的是,除了上述设置,还需要确保Excel自身也配置正确。确保Excel的默认语言设置支持中文,或者...

    PLSQL 中文乱码解决方案

    在IT行业中,遇到数据库字符集导致的PL/SQL中文乱码问题是非常常见的,尤其是在处理多语言环境下的数据时。本文将深入探讨这一问题,并提供一套详细的解决方案,帮助读者理解和解决因字符集不匹配而导致的PL/SQL中文...

    Toad 中文版 TOAD FOR ORALCE

    "Toad 中文版"意味着它已经本地化,支持简体中文界面,方便中国用户操作。 1. **数据库连接**:Toad for Oracle允许用户轻松连接到各种版本的Oracle数据库,只需输入必要的连接信息,如服务器地址、端口、服务名、...

    toad使用技巧说明

    2. **解决中文乱码问题**:如果遇到Toad显示中文乱码,可能是因为数据库服务器的NLS_LANG设置不正确。在Windows系统的环境变量中添加`NLS_LANG=AMERICAN_AMERICA.WE8ISO8859P13`,以适应中文字符集。 3. **自动提示...

    TOAD 中文文档 TOAD 中文文档

    TOAD(Tool for Oracle Application Developers)是Quest Software公司开发的一款强大的Oracle数据库管理工具,尤其适合数据库管理员(DBAs)、开发人员和数据分析师使用。这款工具提供了全面的功能,包括数据库对象...

    OracleXE 导入系统缺少的包 更改字符集sql命令

    这通常涉及到数据库的完整性和兼容性,特别是当数据库实例需要处理多种语言或特殊字符时,字符集的设置至关重要。本文将深入探讨如何解决OracleXE导入系统时缺少的包问题以及如何更改数据库的字符集。 首先,"导入...

    Toad for Oracle中文简易教程

    3. 结果集会显示在下方的“结果集”窗口,可以进行排序、过滤、导出等操作。 五、对象管理 1. 在“对象浏览器”窗口,可以查看数据库中的表、视图、存储过程、触发器等对象。 2. 右键选择对象,可以进行创建、修改...

    Toad for Oracle 12.6 官方中文文档

    这个官方中文文档集包括了多个指南,以便用户能够更好地理解和使用这款软件。 1. **TOAD.chm**:这是一个帮助文件,通常包含了Toad for Oracle 12.6的各项功能和操作的详细说明。CHM(Compiled HTML Help)格式是...

    Toad for Oracle 中文使用指南

    ### Toad for Oracle 使用指南关键知识点 #### 一、Toad for Oracle 概览 - **版本信息**:Toad for Oracle 11.6 是一款面向 Oracle 数据库的专业开发和管理工具,由 Quest Software 在 2012 年发布。 - **版权与...

    toad找到不到客户端

    ### Toad 找不到 Oracle 客户端问题解决方法 在使用 Toad for Oracle 进行数据库管理时,可能会遇到一个常见问题:“Toad 找不到 Oracle 客户端”。这种情况通常发生在 Toad 无法识别到正确安装的 Oracle 客户端...

    Toad for DB2 license key 注册

    Toad for DB2是一款强大的数据库管理工具,专为IBM的DB2数据库系统设计。它提供了丰富的功能,包括SQL开发、数据库管理和性能优化等,极大地提高了DBA(数据库管理员)和开发人员的工作效率。在本话题中,我们将关注...

    Toad for DB2解决方案(中文)

    ### Toad for DB2 解决方案知识点解析 #### 一、Toad for DB2 概述 Toad for DB2 是一款专为DB2数据库设计的高效开发与管理工具,适用于DBA(数据库管理员)及开发人员。该工具集成了模式浏览、SQL编程、调试、DBA...

    Toad 中文培训PPT

    Toad兼容Windows 95/98/NT/2000操作系统,客户端至少需要16MB RAM和15MB磁盘空间,服务器端需Oracle 7.3及以上版本。 **卸载** 卸载Toad相对简单,按照提供的步骤即可完成。 总结来说,Toad是一款全面的Oracle...

    toad 8.5 中文说明

    Toad for Oracle是一款由Quest Software开发的强大Oracle数据库管理工具,主要面向DBA(数据库管理员)、开发者和分析师。本文将详细解读Toad 8.5版本的中文说明,帮助用户更好地理解和使用这款工具。 1. **简介** ...

    toad for mac 2.4.3(解决mac上toad过期问题)

    toad for mac 2.4.3(解决mac上toad过期问题)

    toad for oracle 中文手册

    手册将解释如何高效地处理大量数据,包括批量更新、删除、插入,以及数据的备份和恢复。 六、性能优化 对于数据库性能监控和优化,Toad提供了性能分析器、SQL调优顾问等工具。手册将介绍如何使用这些工具来识别性能...

    toad for mac 2.4.3(解决mac上toad数据库过期无法使用问题)

    这个版本的发布主要是为了解决Mac用户在使用旧版Toad时遇到的数据库过期无法使用的问题,确保用户能够持续、稳定地进行数据库管理工作。 在Mac上使用Toad for Mac 2.4.3,用户可以享受到以下主要功能: 1. SQL开发...

    toad for mac 2.4.3(解决mac上toad过期无法使用问题)

    解决mac上toad过期无法使用问题

Global site tag (gtag.js) - Google Analytics