Unix下UTF 8和GB2312互相轉換的函式

2021-04-25 17:17:20 字數 1378 閱讀 6421

#

include

<

iostream

>

#include

using

namespace

std;

int utf8togb2312(

const

char

*sourcebuf,

size_t sourcelen,

char

*destbuf,

size_t destlen)

int gb2312toutf8(

const

char

*sourcebuf,

size_t sourcelen,

char

*destbuf,

size_t destlen)

int main(

)char

line

[80]

;memset

(line

,0,80);if

(null==

fgets

(line

,80,fp)

)char dest_gb2312[80]

;utf8togb2312(

line

,strlen

(line

),dest_gb2312,80)

;cout

<

<

"before convert(utf-8): "

<

<

line

<

<

endl

;cout

<

<

"after convert(gb2312): "

<

< dest_gb2312 <

<

endl

;cout

<

<

endl

<

<

endl

;char dest_utf8[80]

;gb2312toutf8(dest_gb2312,

strlen

(dest_gb2312)

,dest_utf8,80)

;cout

<

<

"before convert(gb2312)"

<

< dest_gb2312 <

<

endl

;cout

<

<

"after convert(utf-8)"

<

< dest_utf8 <

<

endl

;return 0;

}

c語言中關於utf 8編碼轉換為gb2312的問題

在網上查到如下 問題是 輸出發現gb2312 utf8是沒問題的,但是utf8轉為gb2312時發現只轉換了英文部分,漢字部分並沒有轉換,期待高手釋疑!include include include include define outlen 255 main 轉換 從一種編碼轉為另一種編碼 int...

檔案編碼入門 UTF 8和GB

在簡體中文 windows系統中 1.開啟記事本,輸入 移動 儲存關閉後重新開啟,顯示的仍然是 移動 兩個字。2.重新新建乙個文字檔案,輸入 聯通 儲存關閉後重新開啟,顯示的就不是 聯通 字元了,而是看上去所謂的亂碼。的確,這就是乙個編碼問題。字元需要編碼,一套編碼體系就形成了乙個字符集。美國人最開...

gb2312和UTF 8的區別

gb2312編碼大約包含6000多漢字 不包括特殊字元 編碼範圍為第一位b0 f7,第二位編碼範圍為a1 fe 第一位為cf時,第二位為a1 d3 計算一下漢字個數為6762個漢字。當然還有其他的字元。包括控制鍵和其他字元大約7573個字元編碼 gbk編碼是對gb2312編碼的擴充,容納的漢字更多,...