當前位置:首頁 » 編程語言 » c語言漢字亂碼

c語言漢字亂碼

發布時間: 2024-06-13 16:56:12

c語言編譯運行亂碼是什麼原因

這種情況多數是由於操作系統的語言選項不正確引起的。建議你查看一下控制面板中的區域和語言選項,特別是有關「非Unicode程序的語言」,一定要選擇成「中文(簡體,中國)」。然後重啟電腦。

⑵ C語言控制台程序,中文輸出變成亂碼,怎麼解決

這里涉及到一個字元在源代碼(文本)中,編譯好的二進制文件中,以及最後控制台輸出編碼形式的區別.
首先,要明確一點:C(語言/程序)並不理解ANSI,UTF-8以及任何其他編碼.它只知道處理你給它的字元的二進製表示.
在簡體中文Windows下,默認的文本保存編碼是ANSI(即GBK);Linux下根據系統locale設定,一般應該是(zh_CN.UTF-8).(以下基於簡體中文Windows)
1)對於源文件中保存的"中文"這個字元串,VS2008看到的就是"0xd6d0"和"0xcec4"的形式(默認ANSI編碼得到).但編譯器才不管是不是GBK神馬的,它就管那串數字.
區別,MinGW看到的是"0xe4b8ad"和"0xe69687"(gcc默認UTF-8).注意,用MinGW編譯的源文件中有中文寬字元必須保存為UTF-8編碼.
2)然後,在二進制文件中的存儲形式,對傳統的字元串(char str[] = "中文";),編譯器什麼都不做,直接把那串數字(如"0xd6d0","0xcec4")搬過去塞進二進制文件.
但對於寬字元串(wchar_t wstr[] = L"中文";),編譯器會將其做轉換,轉換成Unicode編碼格式(在Windows是UTF-16,而Linux下是UTF-32).如"中文"的16位Unicode是"0x4e2d"和"0x6587",然後把這串轉換後的數字("0x4e2d","0x6587")塞進二進制文件中.(這里VS和MinGW做的沒有區別)
這里有點需要注意,編譯器必須知道你的源文件保存的編碼!如VS默認是ANSI編碼,如果你用UTF-8保存.c源文件去用VS打開看一定是亂碼.同理如果你用mingw編譯ANSI編碼保存的源文件,也會出錯!(但可以修改編譯選項解決,見文章末尾) 在本文這里這個原因其實很好理解,因為編譯器需要知道,如果它要將一個保存在文件中的字元轉成寬字元時,是從什麼編碼轉到Unicode.(可見上述VS是GBK->Unicode,而MinGW是UTF-8->Unicode)

⑶ C語言運行的時候漢字全部亂碼怎麼回事

1、漢字亂碼是因為緩沖區有字元,需要用fflush(stdin);來清空鍵盤緩沖區,
使用getch等都是治標不治本的辦法,可以多學習一下fflush的使用,對於大批量的手動輸入,很用。
2、常式:

#include"stdio.h"
#include"stdlib.h"
#include<conio.h>
main()
{

charx;
while(1)
{
printf("請輸入一個小寫字母:");
fflush(stdin);//清空鍵盤緩沖區
x=getchar();
printf("大寫字母為: ");putchar(x-32);
}
}

⑷ 為什麼我的ubuntu11.04在編譯的C語言中,漢字部分printf輸出後顯示亂碼

很可能是你的源碼存放的文件的編碼格式有問題.
可以嘗試用vim打開以埋皮手彎嫌後輸入
:se fileencoding=utf-8
再握姿編譯調試看看.

⑸ C語言輸出中文亂碼

提幾個建議。1)沒給出str的大小,不知道你定義的多大。至少str要保證120以上。考慮用2的倍數最優可以char
str[122]並且因為系統將自動在最後加'\0'。最好設定讀取121為好。以免讀取半個中文字。2)fgets的用法問題。
追加返回值的判斷為好。if(fgets(str,120,fp)!=null){
printf("%s\n",str);}3)關於出現亂碼的問題,估計你的文件中有中文漢字。讀取到119位的時候正好是某個漢字的前一半。要解決這個if(fgets(str,121,fp)!=null)
這里120
改成讀偶數個121。另外文件最好用寬字元的。就可以避免亂碼了。

⑹ C語言編程出現漢字輸出亂碼現象

C語言中一個漢字是由兩個位元組來表示的
而C語言編程主要是以位元組為單位來顯示
所以你的C語言輸出中,如果漢字顯示只顯示了一個位元組,就會有亂碼出現了
正常的做法是,你的printf輸出時,符號的長度要為偶數位元組。

熱點內容
免費的文件夾加密大師 發布:2024-07-23 03:44:44 瀏覽:451
3位密碼鎖密碼是多少 發布:2024-07-23 03:17:55 瀏覽:209
linuxandroid內核版本 發布:2024-07-23 02:37:24 瀏覽:73
緩存模型導出max 發布:2024-07-23 02:20:53 瀏覽:98
android進程回收 發布:2024-07-23 02:20:52 瀏覽:660
數組打亂php 發布:2024-07-23 02:20:52 瀏覽:66
西安php 發布:2024-07-23 02:16:05 瀏覽:213
無冬腳本 發布:2024-07-23 02:16:04 瀏覽:996
方舟伺服器推薦什麼模式 發布:2024-07-23 02:07:17 瀏覽:390
淘寶支付密碼怎麼改 發布:2024-07-23 02:01:37 瀏覽:927