Linux下实现UTF-8和GB2312互相转换的方法

2025-05-27 0 96

实例如下:

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101
#include<iconv.h> #include <stdio.h>

#include<iconv.h>

using namespace std;

int utf8togb2312(const char *sourcebuf,size_t sourcelen,char *destbuf,size_t destlen) {

iconv_t cd;

if( (cd = iconv_open("gb2312","utf-8")) ==0 )

return -1;

memset(destbuf,0,destlen);

const char **source = &sourcebuf;

char **dest = &destbuf;

if(-1 == iconv(cd,source,&sourcelen,dest,&destlen))

return -1;

iconv_close(cd);

return 0;

}

int gb2312toutf8(const char *sourcebuf,size_t sourcelen,char *destbuf,size_t destlen) {

iconv_t cd; if( (cd = iconv_open("utf-8","gb2312")) ==0 )

return -1; memset(destbuf,0,destlen);

const char **source = &sourcebuf;

char **dest = &destbuf;

if(-1 == iconv(cd,source,&sourcelen,dest,&destlen))

return -1;

iconv_close(cd);

return 0;

}

int main() {

char line[80];

char dest_gb2312[200];

char dest_utf8[200];

int ret ;

FILE *fp = fopen("love.txt","r");

if(fp == NULL)

{

printf("oh my dear,open fail...\\n");

return 1;

}

memset(line,0,80);

if( NULL == fgets(line,80,fp))

{

printf("oh fgets fail...\\n");

return 2;

}

printf( "----- :%s\\n",line );

ret = gb2312toutf8(line,strlen(line),dest_gb2312,200);

// ret = gb2312toutf8(dest_gb2312,strlen(dest_gb2312),dest_utf8,80);

printf( "ret=%d\\n\\n\\n",ret);

printf( "gb2312:%s\\n",line );

printf( " utf-8:%s\\n\\n\\n\\n\\n\\n", dest_gb2312 );

ret = utf8togb2312(dest_gb2312,strlen(dest_gb2312),dest_utf8,200);

printf( "ret=%d\\n\\n\\n ",ret);

printf( " utf-8:%s\\n ",dest_gb2312);

printf( "gb2312:%s\\n ",dest_utf8);

return 0;

}

以上就是小编为大家带来的Linux下实现UTF-8和GB2312互相转换的方法全部内容了,希望大家多多支持快网idc~

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

快网idc优惠网 建站教程 Linux下实现UTF-8和GB2312互相转换的方法 https://www.kuaiidc.com/64236.html

相关文章

发表评论
暂无评论