ITPub博客

首页 > 应用开发 > IT综合 > 字符集各类问题集合

字符集各类问题集合

原创 IT综合 作者:Michael_DD 时间:2015-07-31 14:47:27 0 删除 编辑
字符集各类问题集合


字符集问题集中处理方法:


系统server本身使用的字符集是什么?
客户端client使用的字符集是什么?
连接的使用使用的字符集是什么?


使用的连接工具(如CRT等)使用的字符集是什么?
文件使用的字符集是什么?


源---连接---目标显示端  这三个地方都一致就不会出现乱码了


遵循每个点的字符集都是一致的,就不会出现乱码情况。


*******************************************************************************
linux系统层面:


查看当前系统使用的字符集:
[root@nagios ~]# echo $LANG
en_US.UTF-8
[root@nagios ~]# 


修改字符集:
[root@nagios ~]# export  LANG=zh_CN.GB2312


查看系统内一个文件使用的字符集:
[root@nagios tmp]# file /tmp/test3 
/tmp/test3: UTF-8 Unicode text
[root@nagios tmp]#






*******************************************************************************
oracle层面:


oracle server端字符集
SQL> select userenv('language') from dual;


USERENV('LANGUAGE')
----------------------------------------------------
AMERICAN_AMERICA.ZHS16GBK


SQL> 






查询oracle client端的字符集


在windows平台下,就是注册表里面相应OracleHome的NLS_LANG。还可以在dos窗口里面自己设置,
比如: set nls_lang=AMERICAN_AMERICA.ZHS16GBK
这样就只影响这个窗口里面的环境变量。


在unix平台下,就是环境变量NLS_LANG。
$echo $NLS_LANG
AMERICAN_AMERICA.ZHS16GBK
如果检查的结果发现server端与client端字符集不一致,请统一修改为同server端相同的字符集。




*******************************************************************************
mysql层面:
mysql的比较复杂,一个数据库可以指定字符集,一个表也可以指定字符集,insert进去的使用采用的字符集,select出来的字符集都会跟原始的
字符集是一样的。
mysql> show variables like "%chara%";
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | latin1                     |
| character_set_connection | latin1                     |
| character_set_database   | latin1                     |
| character_set_filesystem | binary                     |
| character_set_results    | latin1                     |
| character_set_server     | latin1                     |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)


mysql>


character_set_client       客户端字符
character_set_server   服务端字符
character_set_connection   连接字符
character_set_database   数据库使用的字符
character_set_filesystem   文件使用的字符
character_set_results   结果字符
character_set_system   系统字符


修改字符:
set names utf8;
mysql> set names utf8;
Query OK, 0 rows affected (0.00 sec)


mysql> show variables like "%chara%";
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8                       |
| character_set_connection | utf8                       |
| character_set_database   | latin1                     |
| character_set_filesystem | binary                     |
| character_set_results    | utf8                       |
| character_set_server     | latin1                     |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)


mysql> 
修改了三个地方的字符;


单个修改:
mysql> set character_set_client=latin1;
Query OK, 0 rows affected (0.00 sec)

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/29500582/viewspace-1757757/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2014-02-22

  • 博文量
    326
  • 访问量
    2671972