100财富给牛*之人!就没人知道在linux下用c语言如何将汉字的unicode编码转化为汉字吗?
发布网友
发布时间:2022-05-01 09:47
我来回答
共4个回答
热心网友
时间:2023-10-03 03:20
除了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);
热心网友
时间:2023-10-03 03:20
试试这个四个函数,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。不过对于这个函数来说,在哪个平台上都不会因为字符编码而影响使用。
热心网友
时间:2023-10-03 03:21
我得知道这是什么编码。utf8?
解读完是乱码。
52B3788C788C你从哪里复制的?
热心网友
时间:2023-10-03 03:21
我也在找答案,有号的告诉我一声
如何用C语言实现汉字和Unicode编码的转换 求程序
但是如果调用标准库函数的话,在 Linux 下也是有效的。调用标准库函数,首先必须包含 locale.h 并调用 setlocale(LC_ALL, "") 后才能正确转换。Windows 下的 Multi-byte 是 ANSI 编码的,Wide charactor 是 Unicode (UTF-16) 编码,而 Linux 下的 Multi-byte 是 UTF-8 编码的,Wide charactor ...
请求在linux下C语言如何将汉字转换成UTF
} zdl_361 说的 "utf8 劳碌碌" 不对,因为我也输出 "劳碌碌",而我是用 Unicode 编码的。在 Windows 上,char 是 ANSI,Unicode (wchar_t) 是 UTF-16;在 Linux 上,char 是 UTF-8,Unicode (wchar_t) 是 UTF-32。不过对于这个函数来说,在哪个平台上都不会因为字符编码而影响使用。
各位大侠: 在linux下如何用C实现汉字转unicode码。比如:“中国”转成...
中文编码不少,没功夫全写出来(也写不全),UTF-8是我平时用的。在开源环境中,这个根本不是问题,可以参考zh-autoconvert的源代码:http://ftp.de.debian.org/debian/pool/main/z/zh-autoconvert/zh-autoconvert_0.3.16.orig.tar.gz 它提供了多种中文编码间相互转换的C语言代码,找你需要的...
linux下c/c++ unicode字符串转为汉字输出,高分求答案
ascll码0~33有一半是控制字符,肯定显示不了的我就不说了 linux下字符乱码首先想到的就是编码问题,Unicode不行就试试UTF-8等,
linux下编码转换问题,C语言实现,使用iconv函数族
1、iconv的含义是将一个抽象的符号的编码进行转换。但是如果一个符号比如“个”,可能在BIG5的编码中不存在(繁体字中不同)GBK包含的是简体字,BIG5包含的是繁体字,Unicode包含全部,所以 GBK->Unicode,Big5-Unicode (总是OK)Unicode->GBK (当里面仅包含英文及简体时OK)Unicode->BIG5 (当里面仅...
在Linux下,用什么命令或工具,可以把文件中全部汉字转换成"\uXXXX"的...
用python吧, 用来做自动化处理不错 !/usr/bin/python coding=utf8 str=u"汉字"print str.encode('utf8')下边是个例子 处理文件用 f=file('test.txt')参考资料:www.qvms.net
用gcc编c语言怎样输入中文
scanf()可以;char s[100];scanf("%s", s);printf("%s", s);中文有多种编码:ansi, unicode, UTF-32, ...每种编码,每个汉字占用的字节不太相同。我没有在linux下用过汉字,不知道,scanf默认是哪种编码(windows下是 ansi)(感觉linux下也应该是ansi,因为太多还是处理英文字符)ansi的...
python的英文的unicode多少(python中文unicode编码)
现代操作系统和大多数编程语言都直接支持Unicode。 现在,捋一捋ASCII编码和Unicode编码的区别:ASCII编码是1个字节,而Unicode编码通常是2个字节。 字母A用ASCII编码是十进制的65,二进制的01000001; 字符0用ASCII编码是十进制的48,二进制的00110000,注意字符'0'和整数0是不同的; 汉字已经超出了ASCII编码的范围,用...
Python2.7 中文字符编码,使用Unicode时,选择什么编码格式
如果是在我的环境下,也就是linux utf-8环境下一个utf-8显示终端,能显示成“汉字”的这坨东西,它实际上是以utf-8编码的“汉”字和“字”字两个unicode字符。它们的真实字符值就是u'\u6c49\u5b57'(内码),可以用"汉字".encode("hex")来查看当前终端下(utf-8编码值)的十六进制码。。所以...
python中unicode编码有多少位(2023年最新分享)
现代操作系统和大多数编程语言都直接支持Unicode。 现在,捋一捋ASCII编码和Unicode编码的区别:ASCII编码是1个字节,而Unicode编码通常是2个字节。 字母A用ASCII编码是十进制的65,二进制的01000001; 字符0用ASCII编码是十进制的48,二进制的00110000,注意字符'0'和整数0是不同的; 汉字已经超出了ASCII编码的范围,用...