解決libxml2不支援中文的問題

2021-03-31 13:46:09 字數 1553 閱讀 1091

使用libxml2處理xml檔案時,預設載入是使用utf-8編碼,所以在修改和儲存為gb2312編碼時,需要將資料轉換為utf-8編碼,然後再進行修改和儲存!

轉換使用iconv,以下是轉換**

char * convertenc( char *encfrom, char *encto, const char * in)

iconv(c_pt, null, null, null, null);

lenin  = strlen(in) + 1;

lenout = 1024;

sin    = (char *)in;

sout   = bufout;

ret = iconv(c_pt, &sin, (size_t *)&lenin, &sout, (size_t *)&lenout);

if (ret == -1)

iconv_close(c_pt);

return bufout;}

以下是例項

test.xml

<?xml version="1.0" encoding="gb2312"?>

測試讀取**

int main(void)

修改、儲存**

test2.xml

<?xml version="1.0" encoding="gb2312"?>

john fleck

june 2, 2002

我來也 example keyword

《書目》 c++

this is the headline

this is the body text.

xmldocptr

parsedoc(char *do**ame, char *uri)

cur = xmldocgetrootelement(doc);

if (cur == null)

if (xmlstrcmp(cur->name, (const xmlchar *) "story"))

newnode = xmlnewtextchild (cur, null, (xmlchar *)"reference", null);

newattr = xmlnewprop (newnode, (xmlchar *)"uri", (xmlchar *)uri);

return(doc);}

int main(int argc, char ** argv )

return 0;}

執行

xmlout gb2312 test2.xml 結果

<?xml version="1.0" encoding="gb2312"?>

john fleck

june 2, 2002

我來也 example keyword

《書目》 c++

this is the headline

this is the body text.

解決libxml2不支援中文的問題

使用libxml2處理xml檔案時,預設載入是使用utf 8編碼,所以在修改和儲存為gb2312編碼時,需要將資料轉換為utf 8編碼,然後再進行修改和儲存!轉換使用iconv,以下是轉換 char convertenc char encfrom,char encto,const char in i...

svn不支援中文路徑問題的解決

s vn的授權檔案authz預設是不支援中文路徑的,因此在精確控制中文資料夾的授權時往往會出錯。要解決這個問題,需要用ultraedit 注意不要用記事本或寫字板 把authz開啟,然後另存在為 utf 8 無bom,如下圖 然後把另存在的authz檔案覆蓋原有的authz檔案。用記事本或寫字板開啟...

svn不支援中文路徑問題的解決

svn的授權檔案authz預設是不支援中文路徑的,因此在精確控制中文資料夾的授權時往往會出錯。要解決這個問題,需要用ultraedit 注意不要用記事本或寫字板 把authz開啟,然後另存在為utf 8 無bom,如下圖 然後把另存在的authz檔案覆蓋原有的authz檔案。用記事本或寫字板開啟au...

docker mysql56解決不支援中文的問題

使用官方的docker啟用mysql56後,在進行漢字操作時,會出現incorrect string value 原因是由於官方的docker映象,預設採用latin1編碼。本文將闡述如何在官方docker的基礎上,使其支援utf8編碼,進而支援漢字的儲存的。其實,我們在使用nginx的docker...

快速解決jupyter不支援中文的問題

執行此命令搜尋matplotlibrc檔案 sudo find name matplotlibrc 修改配置資訊 4.1編輯matplotlibrc檔案 vim matplotlibrc 4.2修改資料 建議直接cv即可 font.family sans serif font.sans serif ...