linux nkf 日文编码转换命令[转载]
windows : Shift-JIS
Linux : 2.4内核使用EUC编码,2.6内核中使用UTF8编码
检查文件编码 nkf -g filename
通常处理字符编码都使用iconv这个命令,但是iconv命令只能用来处理文件名,但对于文本内容的编码就无法处理了,
要想对文本内容的字符编码进行转换,就要用到nkf了
-j : 转换为 JIS 编码(ISO-2022-JP),默认
-e : 转换为 EUC 编码
-s : 转换为 Shift-JIS 编码
-w : 转换为 UTF-8 编码(无BOM)
-Lu : 转换为 unix 换行格式(LF)
-Lw : 转换为 windows 换行格式(CRLF)
-Lm : 转换为 macintosh 换行格式(CR)
-g(--guess) : 自动判断编码并显示
--version : 显示版本
--help : 显示帮助
linux中转换成window : nkf -sxLw nkf -swLw
window转换成linux : nkf -wxLu
对日文字符编码的处理,Windows于Linux使用不同的字符编码,Windows中使用的日文字符编码为Shift-JIS,Linux中2.4内核使用EUC编码,2.6内核中使用UTF8编码,为了解决这个问题,可以使用nkf这个命令。通常处理字符编码都使用iconv这个命令,但是iconv命令只能用来处理文件名,但对于文本内容的编码就无法处理了,要想对文本内容的字符编码进行转换,就要用到nkf了。
首先下载安装,我使用的是Ubuntu8.10,用apt可以很方便的进行安装。如果使用源码进行安装可自行查找相关资料。
| $sudo apt-get nkf |
安装好了就可以开始使用了。这里简单介绍一下nkf的使用。nkf命令使用的时候会将指定文本内容按照参数所设定的编码格式打印输出到屏幕上,并不会对原来的文本进行改变,要生成新的编码格式的文本,可以使用管道命令将结果重定向到其他文件中。先介绍几个基本参数:j,s,e,w,这几个参数分别为JIS,Shift-JIS,EUC,UTF编码,如果要使用UTF8就用w8参数,要使用UTF16就用w16参数,注意这几个字母是小写,另外还有四个大写的参数,J,S,E,W与之前对应相同的字符编码格式,大写于小写的区别在于,小写字母表示输出的编码,大写字母表示假定输入的字符编码,这里用了个“假定”这个词,man文档中是这么说的,我猜想这个意思是说,假如有一个Shift-JIS编码的文件需要转换成UTF8格式,如果指定的参数为E,那么就把这个文件的字符编码当作EUC来处理了。 帮助文档中写道可以指定输入文件和输出文件,不过根据我自己的实验好像不能将结果生成为输出文件,只能 打印到屏幕上,所以只能使用管道命令,重定向到其他文件中。例如我现在要将一个内容为Shift-JIS编码的文件转换成UTF8格式,就可以使用如下命令,这也是我们经常用到的,。
$nkf -w myfile.txt >> test
这个命令的意思就是把文件myfile.txt文件文本的内容转换成utf8的编码然后输出到文件test中,这个时候我们再浏览一下文件test文件的内容应该就能够正常显示了。
nkf还有一个比较有趣的参数,就是可以进行平假名和片假名之间的转换。那就是-h参数,注意,很多命令的帮助档命令的参数也是-h,nkf的帮助命令为--help,-h1参数为片假名到平假名之间的转换,-h2为平假名到片假名之间的转换,-h3为双向转换,前两个参数还好理解,对于第三个双向转换,我没有做过实际验证,不做其他设想了。
这里介绍简单的nkf命令的使用方法,具体的用法请各位参考一下man文档或者帮助命令吧,记得,nkf的帮助命令是--help,不是-h。
linux nkf 日文编码转换命令[转载]的更多相关文章
- linux iconv文件编码转换
linux系统里提供的文件转化编码的命令iconv,例如: iconv -t utf-8 -f gb2312 -c test.xml > text_UTF8.xml 1 -f 源编码-t 目标编 ...
- linux常见的编码转换
1.如何界定是utf-8编码还是其他如 ANSI 或者gb2312编码 以“浙”这个汉字为例,用16进制编码查看时,显示 D5 E3 为2个字节,则为 ansi或者gb2312编码 "苏&q ...
- Linux 环境c++ 编码转换
#include <iconv.h> //代码转换:从一种编码转为另一种编码 static int CodeConvert(char *from_charset,char *to_char ...
- Linux字符编码转换 UTF8转GB3212
在LINUX上进行编码转换时,既可以利用iconv函数族编程实现,也可以利用iconv命令来实现,只不过后者是针对文件的,即将指定文件从一种编码转换为另一种编码. 一.利用iconv函数族进行编 ...
- 用linux的iconv函数 转换编码
inux shell 配置文件中默认的字符集编码为UTF-8 .UTF-8是unicode的一种表达方式,gb2312是和unicode都是字符的编码方式,所以说gb2312跟utf-8的概念应该不是 ...
- iconv 文件编码转换
iconv 文件编码转换 http://www.cnblogs.com/xuxm2007/archive/2010/11/09/1872379.html 查看iconv的支持的编码: $ iconv ...
- 用shell批量编码转换
-------------------------------------文件内容转换:iconv-------------------------------------- 通常,从其他平台拷贝过来 ...
- linux下iconv()函数的用法(转载并修改)
linux shell 配置文件中默认的字符集编码为UTF-8 .UTF-8是unicode的一种表达方式,gb2312是和unicode都是字符的编码方式,所以说gb2312跟utf-8的概念应该不 ...
- linux环境下编码的问题
查看linux支持的编码格式: locale -a查看文件的编码格式: :set fileencodinglinux下文本编码转换: iconv -f gbk -t utf8 main.cpp > ...
随机推荐
- 整理了一下 ThinkPHP 历史
整理了一下 ThinkPHP 历史 ThinkPHP 一款国内最流行的 PHP 开源框架.
- keepalive配置db层的ha的一些注意点
具体db是那种都一样 db先做好replica,可以用自己带的,或者drbd的磁盘复制 db和keepalived必须在同一主机 keepalived里面的rs必须只有一个(否则,做不了主从,理论上会 ...
- XSS 与 CSRF 两种跨站攻击
在前几年,大家一般用拼接字符串的方式来构造动态 SQL 语句创建应用,于是 SQL 注入成了很流行的攻击方式, 但是现在参数化查询 已经成了普遍用法,我们已经离 SQL 注入很远了.但是历史同样悠久的 ...
- servlet转发与重定向
HttpServletRequest: 表示浏览器向服务器发送的请求报文,由Tomcat创建然后作为参数传递给我们doget,dopost方法. 功能:getParameter()获取请求参数 get ...
- JVM体系结构之七:持久代、元空间(Metaspace) 常量池==了解String类的intern()方法、常量池介绍、常量池从Perm-->Heap
一.intern()定义及使用 相信绝大多数的人不会去用String类的intern方法,打开String类的源码发现这是一个本地方法,定义如下: public native String inter ...
- HDU 3641 Pseudoprime numbers(快速幂)
Pseudoprime numbers Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 11336 Accepted: 4 ...
- js 获取下一秒 时间
function getNextTime(start){ //var start = '09:30:00'; var _s = new Date(); var startDate = _s.getFu ...
- 32位ubuntu14.04手动编译hadoop2.6.0
下载官方编译好的包安装老是报错:Unable to load native-hadoop library for your platform 用file命令查看发现官方包里的libhadoop.so. ...
- 【BZOJ】1801 [Ahoi2009]chess 中国象棋(dp)
题目 传送门:QWQ 分析 发现我们关心的不是棋子的位置,我们只关心棋子数量就ok. 首先每行每列最多两个棋子.这是显然的. 然后我觉得本题最难的部分就是对行进行讨论,蒟蒻我一直被限制在了对格点讨论. ...
- 《Linux内核精髓:精通Linux内核必会的75个绝技》一HACK #12 使用Memory Cgroup限制内存使用量
HACK #12 使用Memory Cgroup限制内存使用量 Memory Cgroup是Cgroup的资源限制功能之一,可以控制特定进程可以使用的内存量.Memory CgroupMemory C ...