Linuxé»è®¤ä½¿ç¨çæ¯UTF-8æ ¼å¼æ件ï¼æ以ææ¶åå°Linuxä¸ç¼è¾ä¿ååçæ件å¨Windowsä¸æ¥çä¼åç°æä¹±ç ã
å¨ä¸äºå¯¹ç¼ç æ ¼å¼æè¦æ±çåºåï¼ä¸å®è¦æ³¨æ使ç¨æ£ç¡®çç¼ç æ¹å¼ï¼æ¯å¦å符å å çåºåï¼è¿ä¸ªåææ¯çç踩è¿çã
使ç¨UTF-8æ ¼å¼ç¼ç çæºç æ件ï¼é»è®¤ä¿å为UTF-8æ ¼å¼
使ç¨gccç¼è¯ï¼é»è®¤ä¿åçæ ¼å¼ä¸ºUTF-8ã
#include <stdio.h>
int main(int argc, const char *argv[])
{
int i = 0;
unsigned char *str="abcä¸";
while (str[i])
{
printf("%02X ", str[i]);
i++;
}
printf("\n");
return 0;
}
æµè¯ç»æ
gccç¼è¯å¨å¯ä»¥æå®è¾å ¥çç¼ç æ ¼å¼åè¾åºæ件çç¼ç æ ¼å¼
è¾å
¥ç¼ç æ ¼å¼ï¼ -finput-charset=charset 表示æºæ件çç¼ç æ¹å¼, é»è®¤ä»¥UTF-8æ¥è§£æ
-fexec-charset=charset 表示å¯æ§è¡ç¨åºéçåæ¶å以ä»ä¹ç¼ç æ¹å¼æ¥è¡¨ç¤ºï¼é»è®¤æ¯UTF-8
æºæ件为GB2312æ ¼å¼ç¼ç ï¼éè¿gccæå®çè¾å ¥è¾åºï¼çæUTF-8æ ¼å¼çELFæ件
gcc -finput-charset=GBK -fexec-charset=UTF-8 -o ansi ansi.c
gcc -o ansi_orig ansi.c