前往顾页
以后地位: 主页 > 精通Office > Ubuntu教程 >

SecureCRT下Linux中文称呼及内容包含中文的点窜及下载到Windows

时候:2012-01-27 23:02来源:知行网www.zhixing123.cn 编辑:麦田守望者

1、起首是Linux要支撑汉字字符集:一般UTF-8。CentOS在etc/sysconfig/i18n中,Suse Enterprises Linux在 /etc/sysconfig/language中。
把LANG改成支撑UTF-8的字符集
如:
LANG=”zh_CN.utf8″或LANG=”en_US.utf8″
检察办事器字符集1、检察以后办事器字符集 #locale ,检察办事器支撑的字符集 #locale -a。
让设置的字符集见效:source 文件名,另也可在 /etc/profile (全局) 或 ~/.bashrc (单个用户)设置 Linux 体系的环境变量。
2、再当然就是在SecureCRT下工夫;菜单下有:选项->会话选项->表面->字符编码:挑选UTF-8
到这里的时候发明我的汉字还是乱码:字体挑选支撑汉语的字体。挑选好字符集就搞定了!
Eof
实战开端,CentOS和Suse Enterprises Linux下的实际操纵以下:
一:查抄体系是不是支撑上文说的两种字体:
locale -a|grep zh_CN.utf8
zh_CN.utf8
或:
locale -a|grep en_US.utf8
en_US.utf8 两种都支撑,选一种便可。
二:设定以下:
(1)CentOS:
vi /etc/sysconfig/i18n
#LANG="en_US.UTF-8"
LANG="zh_CN.utf8"
以上设定:LANG就全数变成了:zh_CN.utf8
再:source /etc/sysconfig/i18n
(2)Suse Enterprises,而这个得两个变量,以下:
vi /etc/sysconfig/language
LC_ALL=zh_CN.utf8
LANG=zh_CN.utf8
export LC_ALL LANG
source /etc/sysconfig/language
(3)检察两个体系的建设是不是见效,以下申明都见效了。
root@116.255.139.240:/home/jackxiang/download# locale
LANG=zh_CN.utf8
LC_CTYPE="zh_CN.utf8"
LC_NUMERIC="zh_CN.utf8"
LC_TIME="zh_CN.utf8"
LC_COLLATE="zh_CN.utf8"
LC_MONETARY="zh_CN.utf8"
LC_MESSAGES="zh_CN.utf8"
LC_PAPER="zh_CN.utf8"
LC_NAME="zh_CN.utf8"
LC_ADDRESS="zh_CN.utf8"
LC_TELEPHONE="zh_CN.utf8"
LC_MEASUREMENT="zh_CN.utf8"
LC_IDENTIFICATION="zh_CN.utf8"
LC_ALL=zh_CN.utf8

WEB_39_74_sles10sp1:/home/jackxiang/download # locale
LANG=zh_CN.utf8
LC_CTYPE="zh_CN.utf8"
LC_NUMERIC="zh_CN.utf8"
LC_TIME="zh_CN.utf8"
LC_COLLATE="zh_CN.utf8"
LC_MONETARY="zh_CN.utf8"
LC_MESSAGES="zh_CN.utf8"
LC_PAPER="zh_CN.utf8"
LC_NAME="zh_CN.utf8"
LC_ADDRESS="zh_CN.utf8"
LC_TELEPHONE="zh_CN.utf8"
LC_MEASUREMENT="zh_CN.utf8"
LC_IDENTIFICATION="zh_CN.utf8"
LC_ALL=zh_CN.utf8
最后,看中文显现是不是一般:(输入中文是不是一般,删除中文是不是一次可以删除一其中文,用vim是不是可以输入中文,检察是不是一般,及下载后Windows下是不是一般显现)
root@116.255.139.240:/home/jackxiang/download# ls 审批流程SQL.txt
审批流程SQL.txt
...
27 update t_process set f_Status = 'error' where f_Id = 181
28 jack=向东阳 (中文输入一般,删除也一般)
下载后翻开是不是一般:
root@116.255.139.240:/home/jackxiang/download# sz 审批流程SQL.txt
editplus翻开:jack=向东阳 一般。
本文件是Utf8,别存为ANSI后,再rz上去测试看显现及点窜是不是一般:
CentOS一般显现:jack=向东阳 一般
vim显现版本 7.0.237 :set fileencoding
fileencoding=euc-cn 显现一般,而Suse EnterPrise下Vim 版本 6.4.6 显现不一般:jack=Ïò¶«Ñô Õý³£
set fileencoding 为:
fileencoding=latin1
很明显是因为vim的默许建设有些问题,可能你也需求做下建设点窜,以下:
vi ~/.vimrc
插手或点窜:

 

view plaincopy to clipboardprint?
1.set fileencodings=utf-8,gb2312,gbk,gb18030
2.set termencoding=utf-8
3.set fileformats=unix
4.set fileencoding=utf-8

再用vim检察时:jack=向东阳 一般显现。删除也是一次删除一其中文,增加一其中文,sz上去后检察:
jack=向东阳 一般吗?
其实这个新宋体的字体也能够换的,我换成了:Yahei Mono ,网上下的,也不不错,中文也没有问题。
申明都是OK的,回顾一下,体系编码,vim编辑器编码,和SecureCRT的编码,
如果再来个Mysql呢?Utf8的还好如许就Ok了(character_set_database utf8),我们设置的都是Utf8,但是如果GBK的编码呢?怎样办呢?晕了吧,以下:
show variables like 'char%';
mysql> show variables like 'char%';
+--------------------------+----------------------------------------+
| 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/local/mysql/share/mysql/charsets/ |
+--------------------------+----------------------------------------+
这类环境的话一看就是Mysql的默许编码latin1,这各环境得确保连接参数(就是你的SecureCRT)与这个字段字符集分歧。
固然可以用 set names 'charsetname' 来改变设置,比如, set names 'gbk';
这条号令会同时点窜 character_set_client,character_set_connection,character_set_results
比方:SecureCRT设置的字符编码为 UTF-8,则需求用 set names 'utf8';才气包管SecureCRT既能显现中文,也可利用带有中文的SQL号令。
话如许说,在实际中,还真有GBK的默许,这下就不好搞了,你再怎样设置也杯水车薪,所以这类环境得开两个secureCRT,一个兼容utf8,一个兼容GBK。
这块触及到中文查询,前往,多个字符集的转化,还触及到体系SecureCRT等的转化,淘宝DBA团队前仿佛写过一篇文章,也收录了,当时看大白了,但健忘了:http://justwinit.cn/post/1387/,呵呵,这块仿佛还是有点亏弱,希望有能同一的兄弟给研究一下,感谢。
但是,如许还是会乱码,得点窜SecureCRT的编码为默许:再当然就是在SecureCRT下工夫;菜单下有:选项->会话选项->表面->字符编码:挑选默许。
mysql> select * from t_project \G; 中文一般了,ProjectName: 临时产品 ...
中文查询:
mysql> select * from t_project where ProjectName='项目234'\G;
*************************** 1. row ***************************
f_Id: 72
ProjectName: 项目234
查询Ok,应当拔出也不成问题。。。EOF

 


跋文摘抄自同事的说法:
利用mysql好久了,常常被中文乱码搞的很愁闷,在经历了N久的折磨后,现将处理乱码的流程共享出来:
1.起首要确认连接数据库的字符集是不是分歧。
2.查询前,要确认与表的字符集分歧。
3.如果表内里的字符集确切不对应,测验测验利用CONVERT()函数
4.查抄你的页面编码、meta 声明、数据库连接体例(SET NAMES)是不是分歧,如果你的页面和meta设置为gb2312,但是却在法度中设置 SET NAMES utf8,一样会导致乱码。启事是如果页面设置为 gb2312 ,那么表单中的数据也是遵循 gb2312 提交,但是法度却请求遵循 utf8 去措置,成果自然是乱码。
5.查抄你的文件存储编码是不是和 meta 声明的分歧,假定你的文件是遵循 utf-8 编码存储,但是 meta 却声明为 gb2312 ,将导致乱码。
确认以上三点,根基上可以处理90%的乱码问题。

顶一下
(2)
100%
踩一下
(0)
0%
------分开线----------------------------
标签(Tag):Linux 操纵体系
------分开线----------------------------
颁发评论
请自发遵循互联网相关的政策法规,严禁公布色情、暴力、革命的谈吐。
评价:
神色:
考证码:点击我更换图片
猜你感兴趣