linux下c++编程 GBKTOUTF8问题

linux下c++编程 GBKTOUTF8问题,第1张

GLIB_INCLUDES=`pkg-config --cflags glib-2.0 gthread-2.0`

GLIB_LIBS=`pkg-config --libs glib-2.0 gthread-2.0`

/*

* writed by kf701

*/

#include <stdio.h>

#include <glib.h>

int main(int argch,char *argv[])

{

GError * ge = NULL

char inbuf[20*1024]

FILE *in = fopen(argv[1],"r")

int size = fread( inbuf, 1, sizeof(inbuf), in )

printf( "file size = %d\n", size )

int outlen = 0, readlen = 0

char *out = g_convert( inbuf, size, "UTF-8", "GBK", &readlen, &outlen, &ge )

printf( "convert outlen=%d , readlen = %d\n", outlen, readlen )

if( NULL == out )

{

printf("out is NULL,err=%s\n", ge->message)

exit(0)

}

char output_file[128]

sprintf( output_file, "utf8-%s", argv[1] )

FILE *of = fopen( output_file, "w" )

int n = fwrite( out, 1, outlen, of )

printf( "fwrite n = %d\n", n)

}

调用一下glib库.就好了

不知道你是不是在代码里面自己转换,或者你的目的是什么?

但是,汉字转码,不是增加编译选项 -finput-charset=UTF-8 -fexec-charset=UTF-8 就可以了吗? 前一个是代码编辑的时候的编码格式,后一个是执行时显示的编码格式。

通常编辑的时候格式设置为ANSI,一般编译后可以直接显示。

出现这种情况的原因为两种 *** 作系统的中文压缩方式不同,在windows环境中中文压缩一般为gbk,而在linux环境中为utf8,这就导致了在windows下能正常显示

txt文件在linux环境下打开呈现了乱码状态。

解决方法:在linux用iconv命令,输入命令如下

iconv

-f

gbk

-t

utf8

file.pdf

>

file.pdf.utf8

此时会重生一file.utf8文件,打开之后就能正常显示中文

linux系统下修改语言配置方法有:

法一:修改/etc/profile文件,增加export

LANG=zh_CN.GB18030

法二:修改/etc/sysconfig/i18n文件,将

#LANG="en_US.UTF-8"

#SUPPORTED="en_US.UTF-8:en_US:en"

#SYSFONT="latarcyrheb-sun16"

改为

LANG="zh_CN.UTF-8"

SUPPORTED="zh_CN:zh:en_US.UTF-8:en_US:en:zh_CN.GB18030"

SYSFONT="latarcyrheb-sun16"

/etc/profile:

为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行.

/etc/sysconfig/i18n

这里存放的是系统的区域语言设置

LANG

表明你当前系统的语言环境变量设置

,这里是

zh_CN.GB18030

SUPPORTED

表明系统预置了那些语言支持

,不在项目中的语言不能正常显示

SYSFONT

定义控制台终端字体,你文本登录的时候显示的字体是

latarcyrheb-sun16

I18N

internationalization

的缩写形式,意即在

i

n

之间有

18

个字母,本意是指软件的“国际化”.I18N支持多种语言,不过同一时间只能是英文和一种选定的语言,例如英文+中文、英文+德文、英文+韩文等等;

如果在SCRT上 *** 作时中文乱码,可依次点击options--session

options--appearance,选择character

encoding为UTF-8


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/6204841.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-03-18
下一篇2023-03-18

发表评论

登录后才能评论

评论列表(0条)

    保存