
正文
linux中文字转换命令 linux中文转unicode编码
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
linux环境如何查看文件编码和如何实现编码转换
处于linux命令linux中文字转换命令,想在linux系统中处理一些表格信息,但是在linux输入cat solr |head -2中文字符出现乱码,百度之后才知道linux下文件编码必须是utf-8中文字符才不会出现乱码。经过多方求助,才得知解决方法。
linux环境如何查看文件编码linux中文字转换命令:
file filename
file是命令,filename是文件名
可以从上图看出solr.txtlinux中文字转换命令的编码是utf-16,所以要转换成utf-8。
linux环境如何实现编码转换:
iconv -f utf-8 -t utf-16 keyword -o keyword1
iconv -f 源文件格式 -t 想要转成linux中文字转换命令的格式 文件名 -o 输出文件名
上图所示,中文字符乱码经过转换之后可以输出正常linux中文字转换命令的中文字符。
相关问答
Q1: 装了linux后发现是英文的,怎么用命令改成中文?
第一步:安装中文支持包
[root@oracle ~]# rpm -ivh Deploymen_Guide-zh-CN-5.2-11.noarch.rpm
第二步:安装字体库(同步骤1,用rpm命令安装)
fonts-chinese-3.02-12.el5.noarch.rpm
m17n-db-common-cjk-1.3.3-46.el5.noarch.rpm
m17n-db-chinese-1.3.3-46.el5.noarch.rpm
第三步:安装完成后点击 “系统-管理-语言” 选择“简体中文”,转换语言环境。
第四步:配置文件编辑/etc/sysconfig/i18n 成下面这个样子:
LANG="zh_CN.GB18030"
SUPPORTED="zh_CN.GB18030:zh_CN:zh:zh_TW.Big5:zh_TW:zh:en_US.iso885915:en_US:en"
SYSFONT="lat0-sun16"
SYSFONTACM="iso15"
第五步:注销
[root@oracle ~]#log out
Q2: 求linux 下可以对中文文本自动换行的命令/程序,像fold的(fold换行中文可能撕裂汉字出现乱码所以不行)
只要能识别编码,就不会把中文撕裂的。
用vim吧,正确识别出编码以后,设置
set fo+=Mm
以及
set tw=74
74可以换成你想要的宽度。
之后再选定你要自动换行的区域按gq
Q3: 在Linux下,用什么命令或工具,可以把文件中全部汉字转换成"\uXXXX"的格式,并输出一个新的文件
用python吧, 用来做自动化处理不错
#!/usr/bin/python
#coding=utf8
str=u"汉字"
print str.encode('utf8')
下边是个例子
处理文件用
f=file('test.txt')
Q4: linux命令行下怎么更改语系为中文简体
vim /etc/sysconfig/i18n
初始的时候文件如下所示,但是可能只有其中的一两个;
LANG="en_US.UTF-8"
LANGUAGE="zh_CN.GB18030:zh_CN.GB2312:zh_CN"
SUPPORTED="zh_CN.GB18030:zh_CN:zh:en_US.UTF-8:en_US:en"
SYSFONT="latarcyrheb-sun16"
SYSFONTACM="utf8"
然后你需要做的就是找到LANG 和 SUPPORTED 这两行,然后将以下内容对应着替换上。
LANG="en_US.UTF-8"
SUPPORTED="eu_ES.UTF-8:eu_ES:eu:zh_HK.UTF-8:zh_HK:zh:zh_CN.UTF-8:zh_CN:
zh:zh_SG.UTF-8:zh_SG:zh:zh_TW.UTF-8:zh_TW:zh:en_AU.UTF-8:en_AU:en:en_HK.
UTF-8:en_HK:en:en_US.UTF-8:en_US:en"
上面的是默认英文系统,支持中文简体、繁体、英文的设置
下面是中文设置
LANG="zh_CN.GB18030"
LANGUAGE="zh_CN.GB18030:zh_CN.GB2312:zh_CN"
SUPPORTED="zh_CN.GB18030:zh_CN:zh"
SYSFONT="lat0-sun16"
SYSFONTACM="8859-15"
Q5: 如何在Linux系统实现字符编码转换
Linux下提供linux中文字转换命令了iconv实现这一功能linux中文字转换命令,在Linux linux中文字转换命令的 shell 环境下,iconv用法如下:
iconv -f fromconde -t tocode
-f: 指定需要转换linux中文字转换命令的文本编码
-t: 指定目标文本编码
我们也可以用 -l 列举出所有已知的字符编码集合
iconv -l
具体用法可以通过帮助函数 iconv --help来详细了解
另外,我们也可以在程序中直接使用该函数实现文本的编码转换
#ifndef __CODE_CONVERTER
#define __CODE_CONVERTER
#ifdef WIN32
#include windows.h
#else
#include iconv.h
#endif
class CodeConverter
{
private:
#ifndef WIN32
iconv_t m_cd;
#endif
const char* m_pszFromCode;
const char* m_pszToCode;
public:
CodeConverter()
{
m_pszFromCode = NULL;
m_pszToCode = NULL;
#ifndef WIN32
m_cd = 0;
#endif
}
~CodeConverter()
{
#ifndef WIN32
iconv_close(m_cd);
#endif
}
bool Initialize(const char *pszToCode, const char *pszFromCode);
size_t Convert(char* inBuf, size_t inBytesLeft, char* outBuf, size_t outBytesLen);
};
#endif
#include string.h
#include stdlib.h
#include stdio.h
#include "code_converter.h"
#include errno.h
bool CodeConverter::Initialize(const char* pszToCode, const char* pszFromCode)
{
if(pszFromCode == NULL || pszToCode == NULL) return false;
m_pszFromCode = pszFromCode;
m_pszToCode = pszToCode;
#ifndef WIN32
m_cd = iconv_open(m_pszToCode,m_pszFromCode);
if(m_cd == (iconv_t)-1)
{
printf("cannot open iconv descripter\n");
return false;
}
#endif
return true;
}
size_t CodeConverter:: Convert(char* inBuf, size_t inBytesLeft, char* outBuf, size_t outBytesLen)
{
int nRealLen = 0;
#ifdef WIN32
if(stricmp(m_pszFromCode,"UNICODE") == 0)
{
nRealLen = WideCharToMultiByte(CP_ACP,0,(PWCHAR)inBuf, inBytesLeft, (PCHAR)outBuf, outBytesLen,NULL,NULL);
}
if(stricmp(m_pszFromCode,"gb2312") == 0)
{
nRealLen = MultiByteToWideChar(CP_ACP,0,(PCHAR)inBuf,inBytesLeft,(PWCHAR)outBuf, outBytesLen);
}
#else
size_t outBytesLeft = outBytesLen;
size_t ret = 0;
while (1)
{
ret = iconv(m_cd, inBuf, inBytesLeft, outBuf, outBytesLeft);
if (ret == 0) break;
if (ret == (size_t)-1)
{
printf("iconv error aaa: %s\n",strerror(errno));
return -1;
}
inBuf++; inBytesLeft--;
}
nRealLen = outBytesLen-outBytesLeft;
outBuf[nRealLen]=0;
#endif
return nRealLen;
}
linux中文字转换命令的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于linux中文转unicode编码、linux中文字转换命令的信息别忘了在本站进行查找喔。







