linux字串轉化使用方法
第一步:
iconv_open(目標字符集,源字符集)
第二步:
iconv()實現字符集轉化
第三步:
iconv_close()關閉iconv
命令:iconv --list
顯示系統中支援的字符集
//makefile
.suffixes: .c .o
cc=gcc
srcs=mydaemon.c
objs=$(srcs:.c=.o)
exec=mydaemon
all: $(objs)
$(cc) -o $(exec) $(objs)
@echo '-------------ok--------------'
.c.o:
$(cc) -g -o $@ -c $<
clean:
rm -f $(objs)
rm -f core*
#include #include #include #include #include #include int gbk2utf8(char *src, size_t *srclen, char *dest, size_t *destlen)
size_t rc = iconv(cd, &src, srclen, &dest, destlen);//將src字串轉化為目標dest
if (rc == (size_t)-1)
iconv_close(cd);
return 0;
}int main(int arg, char *args)
file *p = fopen(args[1], "r");
if (p == null)
char buf[1024];//定義乙個buffer,存放讀取到的檔案內容
char destbuf[1024];//定義乙個buffer,存放轉化完字串後的內容
while(1)
size_t srclen = strlen(buf);
size_t destlen = sizeof(destbuf);
gbk2utf8(buf, &srclen, destbuf, &destlen);
printf("%s\n", destbuf);
}fclose(p);
return 0;
}
執行:
在windows下面編輯乙個檔案,將檔案傳到linux上面之後,cat 檔案內容為亂碼。
curses是乙個在linux/unix下廣泛應用的
圖形函式庫.
linux下面安裝軟體的時候,會在螢幕的任意位置輸出字元,進行進度的顯示。
//makefile
.suffixes: .c .o
cc=gcc
srcs=curses.c
objs=$(srcs:.c=.o)
exec=mydaemon
all: $(objs)
$(cc) -o $(exec) $(objs) -lcurses
@echo '-------------ok--------------'
.c.o:
$(cc) -g -o $@ -c $<
clean:
rm -f $(objs)
rm -f core*
#include #include #include #include #include #include int main()
clear();//清除螢幕
sprintf(temp, "please input:");
mvaddstr(0, 0, temp);//在指定的座標列印
int i;
for (i=0; i<10; i++)
move(0, 13);//移動游標到指定座標
refresh();//重新整理螢幕,如果不重新整理螢幕,那麼mvaddstr和move將不生效
}endwin();//結束圖形模式
return 0;
}
執行:
字符集轉化 curses
linux字串轉化使用方法 第一步 iconv open 目標字符集,源字符集 第二步 iconv 實現字符集轉化 第三步 iconv close 關閉iconv 命令 iconv list 顯示系統中支援的字符集 makefile suffixes c o cc gcc srcs mydaemon...
Linux 字符集轉化
命令列 iconv list 檢視linux作業系統支援的字符集 iconv open 設定字符集轉化 iconv t iconv open const char tocode,const char fromcode 引數tocode目標字符集的字串 引數fromcode源字符集的字串 函式成功返回...
mysql字符集轉化關係
表的字符集 其實是字段的字符集 客戶端字符集 set names 的這個字符集 文字的字符集 可以理解為在web介面中的charset 這個字符集,或者是ssh terminal終端的字符集下輸入的文字的格式 有如下的關係 1 當表的字符集是gbk或者utf8時,客戶端和文字的字符集同時為gbk或者...