导航:首页 > 操作系统 > linuxc编码转换

linuxc编码转换

发布时间:2022-10-06 06:45:49

1. linux C用iconv编码转换问题 ,我现在需要将big5和utf8转换为gbk。由于是截取url上的关键字

%A1%D7%AA
这类乱七八糟的编码是rfc标准,iconv是不可能认识的,必须先将rfc编码做个转换。
如"%AA"这三个字符对应的实际字符是"0xaa",对应字符是一个,不要想成四个啦。

2. 请求在linux下C语言如何将汉字转换成UTF

试试这个四个函数,C 里面的,Linux 可用:
mbtowc
wctomb
mbstowcs
wcstombs
在 Linux 下试试看吧:
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
int main(void)
{
size_t cch;
char psz[1024];
wchar_t pwsz[] = { 0x52B3, 0x788C, 0x788C, 0 };
setlocale(LC_ALL, "");
cch = wcstombs(psz, pwsz, 1024);
if (cch != 0 && cch != -1) {
printf("%s", psz);
}
return 0;
}
zdl_361 说的 "utf8 劳碌碌" 不对,因为我也输出 "劳碌碌",而我是用 Unicode 编码的。在 Windows 上,char 是 ANSI,Unicode (wchar_t) 是 UTF-16;在 Linux 上,char 是 UTF-8,Unicode (wchar_t) 是 UTF-32。不过对于这个函数来说,在哪个平台上都不会因为字符编码而影响使用。

3. 各位大侠: 在linux下如何用C实现汉字转unicode码。比如:“中国”转成“5E5D 66EF”,在线等~~

/* Copyright (C) 2010 by Xingyou Chen <[email protected]>
*
* Test OS is Debian squeese AMD64 , source file stored in UTF-8
* If another encoding is used, this program may fail
*/
#include <stdio.h> /* printf() from here */

int main()
{
int i = 0; /* for loop */
char orig[6] = "中国"; /* demo text, Chinese char is 3 byte long */
unsigned short dest[2]; /* two 2-byte variable */
for(i = 0; i < 2; i++)
{ /* Don't understand? See UTF-8 and Unicode encoding */
dest[i] = (orig[3*i] & 0x1F) << 12;
dest[i] |= (orig[3*i + 1] & 0x3F) << 6;
dest[i] |= (orig[3*i + 2] & 0x3F);
printf("%x", dest[i]);
}
printf("\n");
return 0;
}
====================================================
“中国”: UTF-8 e4b8ad e59bbd Unicode 4e2d 56fd
你给出的那个编码该是不正确的。这里只做了UTF-8到UCS-2的转换,
中文编码不少,没功夫全写出来(也写不全),UTF-8是我平时用的。

在开源环境中,这个根本不是问题,可以参考zh-autoconvert的源代码:
http://ftp.de.debian.org/debian/pool/main/z/zh-autoconvert/zh-autoconvert_0.3.16.orig.tar.gz
它提供了多种中文编码间相互转换的C语言代码,找你需要的吧。

4. 在Linux如何让更改文件的字符编码

1.在Vim中直接进行转换文件编码,比如将一个文件转换成utf-8格式
:set
fileencoding=utf-8
2.
enconv
转换文件编码,比如要将一个GBK编码的文件转换成UTF-8编码,操作如下
enconv
-L
zh_CN
-x
UTF-8
filename
3.
iconv
转换,iconv的命令格式如下:
iconv
-f
encoding
-t
encoding
inputfile
比如将一个UTF-8
编码的文件转换成GBK编码
iconv
-f
GBK
-t
UTF-8
file1
-o
file2
查看文件编码file命令
file
ip.txt
ip.txt:
UTF-8
Unicode
text,
with
escape
sequences
一、利用iconv命令进行编码转换文件内容编码转换
iconv命令用于转换指定文件的编码,默认输出到标准输出设备,亦可指定输出文件。
用法:
iconv
[选项...]
[文件...]
有如下选项可用:
输入/输出格式规范:
-f,
--from-code=名称
原始文本编码
-t,
--to-code=名称
输出编码
信息:
-l,
--list
列举所有已知的字符集
输出控制:
-c
从输出中忽略无效的字符
-o,
--output=FILE
输出文件
-s,
--silent
关闭警告
--verbose
打印进度信息
-?,
--help
给出该系统求助列表
--usage
给出简要的用法信息
-V,
--version
打印程序版本号
例子:
iconv
-f
utf-8
-t
gb2312
aaa.txt
>bbb.txt
这个命令读取aaa.txt文件,从utf-8编码转换为gb2312编码,其输出定向到bbb.txt文件。

5. 100财富给牛逼之人!就没人知道在linux下用c语言如何将汉字的unicode编码转化为汉字吗

除了iconv命令,我们在linux系统下的man page的第三节还可以看到一组iconv函数。它们分别是
iconv_t iconv_open(const char *tocode, const char *fromcode);
size_ticonv(iconv_t cd, char **inbuf, size_t *inbytesleft, char **outbuf, size_t *outbytesleft);
int iconv_close(iconv_t cd);
iconv_open函数用来打开一个编码转换的流,iconv函数的作用是实际进行转换,iconv_close函数的作用就是关闭这个流。实际用法参见下面的例子,下面是一个将UTF-8码转换成GBK码的例子,我们假设已经有了一个uft8编码的输入缓冲区inbuf以及这个缓冲区的长度inlen。
iconv_t cd = iconv_open( "GBK", "UTF-8");
char *outbuf = (char *)malloc(inlen * 4 );
bzero( outbuf, inlen * 4);
char *in = inbuf;
char *out = outbuf;
size_t outlen = inlen *4;
iconv(cd, &in, (size_t *)&inlen, &out,&outlen);
outlen = strlen(outbuf);
printf("%s\n",outbuf);
free(outbuf);
iconv_close(cd);

6. linux C语言:如何在ISO8859-1和GB2312字符编码之间互相转换

JAVA有一个public String(byte bytes[], Charset charset)函数可以用指定字节数组和编码来构造字符串。一个public byte[] getBytes(Charset charset)函数把字符串按指定编码来得到字节数组。可以用这两个函数来实现编码转换。
下面是一个简单的例子,注意一下例子中的文字本身的编码,最好在自己的环境中用gb2312重新输入,不然可能是乱码。当然转换后输出肯定有一个是乱码,也肯能都是乱码。根据你的编辑器的编码格式有关。public class EncodingTest
{
public static void main(String[] args)
{
try
{
String gb = new String("国标2312".getBytes(),"gb2312");
System.out.println(gb);
byte [] b = gb.getBytes("gb2312");
String ios = new String(b,"ISO-8859-1");
System.out.println(ios);
} catch (UnsupportedEncodingException e)
{
e.printStackTrace();
}
}
}

7. 100财富给牛逼之人就没人知道在linux下用c语言如何将汉字的unicode编码转化为汉字

除了iconv敕令我们在linux体系下的man page的第三节还可以看到一组iconv函数。它们分别是 iconv_t iconv_open(const char *tocode, const char *fromcode); size_ticonv(iconv_t cd, char **inbuf, size_t *inbytesleft, char **outbuf, size_t *outbytesleft); int iconv_close(iconv_t cd); iconv_open函数用来打开一个编码转换的流iconv函数的感化是实际进行转换iconv_close函数的感化就是封闭这个流。实际用法拜见下面的例子下面是一个将UTF-8码转换成GBK码的例子我们假设已经有了一个uft8编码的输入缓冲区inbuf以及这个缓冲区的长度inlen。 iconv_t cd = iconv_open( \"GBK\", \"UTF-8\"); char *outbuf = (char *)malloc(inlen * 4 ); bzero( outbuf, inlen * 4); char *in = inbuf; char *out = outbuf; size_t outlen = inlen *4; iconv[b]cd,

8. linux下编码转换问题,C语言实现,使用iconv函数族

1、iconv的含义是将一个抽象的符号的编码进行转换。
但是如果一个符号比如“个”,可能在BIG5的编码中不存在(繁体字中不同)
GBK包含的是简体字,BIG5包含的是繁体字,Unicode包含全部,
所以
GBK->Unicode,Big5-Unicode (总是OK)
Unicode->GBK (当里面仅包含英文及简体时OK)
Unicode->BIG5 (当里面仅包含英文及繁体时OK)
GBK->Big5 (基本上不行,除非某些字没有特别的简体字)
GBK->Big5是汉字的简繁转换,不是编码转换,简体字转繁体字还有一个问题,一个简体字可能是对应多个繁体字,这种很难转换正确。繁体字转换成简体字相对难度低。

2、#include <iconv.h>
size_t iconv(iconv_t cd,
char **inbuf, size_t *inbytesleft,
char **outbuf, size_t *outbytesleft);
函数原型, outbuf是一个 char **类型
在函数手册中:
The iconv() function converts one multibyte character at a time, and for each character conversion it increments *inbuf and decrements
*inbytesleft by the number of converted input bytes, it increments *outbuf and decrements *outbytesleft by the number of converted
output bytes

9. linux下怎么改变文件的编码格式

1.在Vim中直接进行转换文件编码,比如将一个文件转换成utf-8格式
:set fileencoding=utf-8

2. enconv 转换文件编码,比如要将一个GBK编码的文件转换成UTF-8编码,操作如下
enconv -L zh_CN -x UTF-8 filename

3. iconv 转换,iconv的命令格式如下:
iconv -f encoding -t encoding inputfile
比如将一个UTF-8 编码的文件转换成GBK编码
iconv -f GBK -t UTF-8 file1 -o file2
查看文件编码file命令
file ip.txt ip.txt: UTF-8 Unicode text, with escape sequences
一、利用iconv命令进行编码转换文件内容编码转换 iconv命令用于转换指定文件的编码,默认输出到标准输出设备,亦可指定输出文件。 用法: iconv [选项...] [文件...] 有如下选项可用: 输入/输出格式规范: -f, --from-code=名称 原始文本编码 -t, --to-code=名称 输出编码 信息: -l, --list 列举所有已知的字符集 输出控制: -c 从输出中忽略无效的字符 -o, --output=FILE 输出文件 -s, --silent 关闭警告 --verbose 打印进度信息 -?, --help 给出该系统求助列表 --usage 给出简要的用法信息 -V, --version 打印程序版本号 例子: iconv -f utf-8 -t gb2312 aaa.txt >bbb.txt 这个命令读取aaa.txt文件,从utf-8编码转换为gb2312编码,其输出定向到bbb.txt文件。

10. 如何在Linux系统实现字符编码转换

Linux 下查看文件字符编码和转换编码 如果你需要在 Linux 中操作 windows 下的文件,那么你可能会经常遇 到 文 件 编 码 转 换 的 问 题 。 Windows 中 默 认 的 文 件 格 式 是 GBK(gb2312),而 Linux 一般都是 UTF-8。下面介绍一下,在 Linux 中如何查看文件的编码及如何进行对文件进行编码转换。 一,查看文件编码: 在 Linux 中查看文件编码可以通过以下几种方式: 1.在 Vim 中可以直接查看文件编码 :set fileencoding 即可显示文件编码格式。 如果你只是想查看其它编码格式的文件或者想解决用 Vim 查看文件乱 码的问题,那么你可以在 ~/.vimrc 文件中添加以下内容: set encoding=utf-8 fileencodings=ucs-bom,utf-8,cp936 这样, 就可以让 vim 自动识别文件编码 (可以自动识别 UTF-8或者 GBK 编码的文件) ,其实就是依照 fileencodings 提供的编码列表尝试,如 果没有找到合适的编码,就用 latin-1(ASCII)编码打开。 2. enca (如果你的系统中没有安装这个命令,可以用 sudo yum install -y enca 安装 )查看文件编码 $ enca filename filename: Universal transformation format 8 bits; UTF-8 CRLF line terminators 需要说明一点的是,enca 对某些 GBK 编码的文件识别的不是很好,识 别时会出现: Unrecognized encoding 二,文件编码转换 1.在 Vim 中直接进行转换文件编码,比如将一个文件转换成 utf-8格式 :set fileencoding=utf-8 2. iconv 转换,iconv 的命令格式如下:输入/输出格式规范: -f, --from-code=名称 原始文本编码 -t, --to-code=名称 输出编码 信息: www.Svn8.Com -l, --list 列举所有已知的字符集 输出控制: -c 从输出中忽略无效的字符 -o, --output=FILE 输出文件 Svn8.Com -s, --s ilent 关闭警告 --verbose 打印进度信息 -?, --help 给出该系统求助列表 --usage 给出简要的用法信息 -V, --version 打印程序版本号 例子: iconv -f utf-8 -t gb2312 aaa.txt >bbb.txt 这个命令读取 aaa.txt 文件,从 utf-8编码转换为 gb2312编码,其输出定向到 bbb.txt文件。 iconv -f encoding -t encoding inputfile 比如将一个 UTF-8 编码的文件转换成 GBK 编码 iconv -f GBK -t UTF-8 file1 -o file2 3. enconv 转换文件编码 比如要将一个 GBK 编码的文件转换成 UTF-8编码,操作如下 enconv -L zh_CN -x UTF-8 filename

阅读全文

与linuxc编码转换相关的资料

热点内容
网盘忘记解压码怎么办 浏览:852
文件加密看不到里面的内容 浏览:651
程序员脑子里都想什么 浏览:430
oppp手机信任app在哪里设置 浏览:185
java地址重定向 浏览:268
一年级下册摘苹果的算法是怎样的 浏览:448
程序员出轨电视剧 浏览:88
服务器系统地址怎么查 浏览:54
解压游戏发行官 浏览:601
国外小伙解压实验 浏览:336
顶级大学开设加密货币 浏览:437
java重载与多态 浏览:528
腾讯应届程序员 浏览:942
一键编译程序 浏览:129
语音加密包哪个好 浏览:340
有什么学习高中语文的app 浏览:282
安卓手机的表格里怎么打勾 浏览:411
阿里云服务器有网络安全服务吗 浏览:970
超解压兔子视频 浏览:24
单片机怎么测负脉冲 浏览:176