JAVA CP936编码转utf8_编码问题的总结
JAVA CP936编码转utf8_编码问题的总结
查看文件编码
在Linux中查看文件编码可以通 过以下几种方式:
1.在Vim中可以直接查看文件编码
:set
即可显示文件编码格式。
如果你 只是想查看其它编码格式的文件或者想解决用Vim查看文件乱码的问题,那么你可以在
~/.vimrc 文件中添加以下内容:
let &=&
set =utf-8,ucs-bom,gbk,cp936
这样,就可以让vim自动识别文 件编码(可以自动识别UTF-8或者GBK编码的文件),其实就是依照提供的编码列表尝试,如果没有找到合适的编码,就用 latin-1(ASCII)编码打开。
文件编码转换
1.在Vim中直接进行转换文件编码,比如将一个文件转 换成utf-8格式
:set =utf-8
2. iconv 转换,iconv的命令格式如下:
iconv -f -t # 比如将一个UTF- 8 编码的文件转换成GBK编码
iconv -f GBK -t UTF-8 file1 -o file2
Linux 对一个3G的文本进行编码转换全过程
本过程中涉及到的Linux的命令有:split, iconv, cat 问题:有一个3G 的文本a.txt,编码格式为gbk,现在需要对其进行转换成为utf-8。 难点:iconv的转换是在内存中进行的,因此3G大小的文本,无法 进行直接转换。 思路:先利用split进行文件切分,然后对每一个字文件进行ivonv转换,最后进行cat合并。
1) ll -h a.txt 查看文件的大小,2.9G
2) wc -l a.txt 查看文件的行数php cp936,9千200万行
3) split -l a.txt chunk 按照每个文件2千万行进行切割,共分成5个文件 4) 进行转换
iconv -f gbk -t utf-8 > -c iconv -f gbk -t utf-8 > -c iconv -f gbk -t utf-8 > -c iconv -f gbk -t utf-8 > -c iconv -f gbk -t utf-8 > -c 5) rm 删除原文件
6) cat chunk* > a. 进行合并
至此,工作完成
二、
批 量文件编码转换
本操作有风险,请注意操作前备份文件。
1.将原来所有编码为的.java文件转换为编码为utf-8 的.java.new文件 for i in find . -name “*.java”; do iconv -f
-t utf-8 $i -o $i.new; done
2.将*.java.new文件的.new扩展名去除
find . -name “*.new” | sed 's/(.*).new$/mv “&” “1”/' | sh
三、
linux下有 许多方便的小工具来转换编码,

文本内容转换 iconv
文件名转换
mp3标签转换 –
四、
用法: iconv
选项…
文件…
转换给定文件的编码。
输 入/输出格式规范:
-f, –from-co
de=名称 原始文本编码
-t, –to-code=名 称 输出编码
信息:
-l, –list 列举所有已知的字符集
输出 控制:
-c 从输出中忽略无效的字符
-o, –=FILE 输出文件
-s, — 关闭警告
–verb-?, –help 给出该系统求助列表
–usage 给出简要的用法信息
-V, — 打印程序版本号
五、
find -type d -exec mkdir -p utf/{} ; find -type f -exec iconv -f GBK -t UTF-8 {} -o utf/{} ;
这两行命令将目录下的文件由GBK编码转换为UTF-8编码,目录结构 不变,转码后
的文件保存在utf/目录下。
六、
Linux下文件名编码批量转换
由于FC将字 符编码统一成了UTF8,原来在下建立的ext3分区中的文件和目录,一挂载到FC上就显示成乱码。遍整个互联网,说对于目录 名和文件名,有一个叫的软件可以对其进行自动转换。
今日下载了,摸索了一套使用方法如下:
-f code1 -t code2 -r
code1:分区原来使用的字符集编码。支持、gbk、 big5,不支持和big5-hkscs。 code2:预转换到的字符集编码。对于FCphp cp936,这里填写utf8
-r 参数:转换子目录。
dir:要转换的目录,当前目录用./表示。
回车执行,这个时候会显示执行的结果,但不会真正对文件进 行修改。并提示使用–参数进行修改。
七、
批量转换文件的编码

for i in `find ./ -name *.htm` ; do echo $i;iconv -f -t utf8 $i -o
/tmp/iconv.tmp;mv /tmp/iconv.tmp $i; done
find -name “*.htm“
-exec iconv -f -t utf8 ‘{}‘ -o /tmp/iconv.tmp ; -exec mv /tmp/iconv.tmp ‘{}‘ ;
修改你的.vimrc文件,让其支持 就行,会自动识别的。
可以参考我的设置
代码:
“设定文件编码类型,彻底解决中文编码问题
let &=&
set =utf-8,gbk,ucs-bom,cp936
按照的方法解决了终端中vi看中文字问题。谢谢
略微查了一下.vimrc中添加内容的含意,这篇文章有相关解释。
内容如下:
vim中编辑不同编码的文件时需要注意的一些地方
此文讲解的是vim编辑多字节编码文档(中文)所要了解的一些基础知识,注意其没有涉及gvim,纯指字符终端下的vim。
vim编码方面的基础知识
1,存在3个变量:
—-该选项使用于缓冲的文本(你正在编辑的文件),寄存器,Vim 脚本文件等等。你可以把 '' 选项当作是对 Vim 内部运行机制的设定。
—-该选项是vim写入文件时采用的编码类型。
—-该选项代表输出到客户终端(Term)采用的编码类型。
2,此3个变量—-与系统当前相同,所以编辑文件的时候要考虑当前,否则要设置的东西就比较多了。
—-vim打开文件时自动辨认其编码,就为辨认的值。为空则保存文件时采用的编码,如果没有修改,那值就是系统当前了。 —-默认空值,也就是输出到终端不进行编码转换。
由此可见,编辑不同编码文件需要注意的地方不仅仅是这3个变量,还有系统当前和、文件本身编码以及自动编码识别、客户运行vim的终端所使用的编码类型3个关键点,这3个关键点影响着3个变量的设定。
如果有人问:为什么我用vim打开中文文档的时候出现乱码,
答案是不确定的,原因上面已经讲了,不搞清楚这3个关键点和这3个变量的设定值,出现乱码是正常的,倒是不出现乱码那反倒是凑巧的。
再来看一下常见情况下这三个关键点的值以及在这种情况下这3个变量的值:
1.—-目前大部分Linux系统已经将utf-8作为默认 了,不过也有可能不是,例如有些系统使用中文 zh_CN.。在为utf-8的情况下,启动vim后将会设置为utf-8,这是兼容性最好的方式,因为内部 处理使用utf-8的话,无论外部存储编码为何都可以进行无缺损转换。决定了vim内部处理数据的编码,也就是
。
2.文件的编码以及自动编码识别—-这方面牵扯到各种编码的规则,就不一一细讲了。但需要明白的是,文件编码类型并不是保存在文件内的,也就是说没有 任何描述性的字段来记录文档是何种编码类型的。因此我们在编辑文档的时候,要么必须知道这文档保存时是以什么编码保存的,要么通过另外的一些手段来断定编 码类型,这另外的手段,就是通过某些编码的码表特征来断定php cp936,例如每个字符占用的字节数,每个字符的ascii值是否都大于某个字段来断定这个文件属于何种 编码。这种方式vim也使用了,这就是vim的自动编码识别机制了。但这种机制由于编码各式各样,不可能每种编码都有显著的特征来辨别,所以是不可能 100%准确的。对于我们编码,由于其中文是使用了2个acsii值高于127的字符组成汉字字符的,因此不可能把编码的文件与 编码区分开来,此自动识别编码的机制对于是不成功的,它只会将文件辨识为编码。此问题同样出现在gbk,big5 上等。因此我们在编辑此类文档时,需要手工设定和。如果文档编码为utf-8时,一般vim都能自动识别正确的 编码。
3.客户运行vim的终端所使用的编码类型—-同第二条一样,这也是一个比较 难以断定的关键点决这个问题。此问题更多出现在我们的 机远程ssh登录服务器的情况下,这里牵扯到不同系统的编码转换问题。所以又与本身以及ssh客户端有很大相关性。在 下存在两种编码类型的软件,一种是本身就为编码方式编写的软件,一种是ansi软件,也就是程序处理数据直接采用字节流JAVA CP936编码转utf8_编码问题的总结,不 关心编码。前一种程序可以在任何语言的上正确显示多国语言,而后一种则编写在何种语言的系统上则只能在何种语言的系统上显示正确的文字。对 于这两种类型的程序JAVA CP936编码转utf8_编码问题的总结,我们需要区别对待。以ssh客户端为例,我们使用的putty是软件,而 CRT则是ansi 软件。对于前者,我们要正确处理中文,只要保证vim输出到终端的编码为utf-8即可,就是=utf-8。但对于后者,一方面 我们要确认我们的系统默认代码页为cp936(中文默认值),另一方要确认vim设置的= cp936。
最后来看看处理中文文档最典型的几种情况和设置方式:
1.系统是utf-8(很多linux系统默认的形 式),编辑的文档是或GBK形式的(记事本默认保存形式,大部分编辑器也默认保存为这个形式,所以最常见),终端类型utf- 8(也就是假定客户端是putty类的软件)
则vim打开文档后,=utf-8(决定的),=(自动编码判断机制不准导致的),=空(默认无需转换term编码),显示文件为乱码。 解决方案1:首先要修正为cp936或者euc-cn(二者一样的,只不过叫法不同),注意修正的方法不是:set =cp936,这只是将文件保存为cp936,正确的方法是重新以cp936的编码方式加载文件为:edit ++enc=cp936,可以简写为:e ++enc=cp936
1. 本站所有资源来源于用户上传和网络,如有侵权请联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系站长处理!
6. 本站不售卖代码,资源标价只是站长收集整理的辛苦费!如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。
7. 站长QQ号码 2205675299
资源库 - 资源分享下载网 » JAVA CP936编码转utf8_编码问题的总结
常见问题FAQ
- 关于资源售价和售后服务的说明?
- 代码有没有售后服务和技术支持?
- 有没有搭建服务?
- 链接地址失效了怎么办?
- 关于解压密码

