使用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 ...