『壹』 在linux C中,如何取得當前輸入法的中英文狀態請問有相關的系統函數么如何使用
輸入的狀態,應該是和輸入法軟體相關的吧???
那就得看看系統安裝的是什麼輸入法了,fixt,ibus等等。
剛才我用openoffice測試了下,返回的輸入狀態,是根據當前游標的位置,如果游標左邊的字元是漢字,輸入狀態顯示的就是chinese simplified,游標左邊的字元是英語或者數字字元,就返回English.
這個方法倒是值得借鑒....,而且這功能是放在拼寫檢查裡面的。
輸入法的話,應該是把鍵盤的輸入給截獲了,自己處理過後再決定輸出。沒有截獲的時候,寫什麼就是什麼了...
『貳』 linux C下如何將Unicode碼解碼成中文字元
你的中文字元,含義不清楚。
通常解碼/轉碼,都是調用encode庫。
『叄』 linux 下運行C的程序,終端運行出現亂碼,該怎麼解決!!
初步 判斷 是 漢字的問題吧
你把 漢字 換成對應 的 字母試試看!
Good luck
『肆』 100財富給牛逼之人!就沒人知道在linux下用c語言如何將漢字的unicode編碼轉化為漢字嗎
試試這個四個函數,C 裡面的,Linux 可用:
mbtowc
wctomb
mbstowcs
wcstombs
在 Linux 下試試看吧:
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
int main(void)
{
size_t cch;
char psz[1024];
wchar_t pwsz[] = { 0x52B3, 0x788C, 0x788C, 0 };
setlocale(LC_ALL, "");
cch = wcstombs(psz, pwsz, 1024);
if (cch != 0 && cch != -1) {
printf("%s", psz);
}
return 0;
}
zdl_361 說的 "utf8 勞碌碌" 不對,因為我也輸出 "勞碌碌",而我是用 Unicode 編碼的。在 Windows 上,char 是 ANSI,Unicode (wchar_t) 是 UTF-16;在 Linux 上,char 是 UTF-8,Unicode (wchar_t) 是 UTF-32。不過對於這個函數來說,在哪個平台上都不會因為字元編碼而影響使用。
『伍』 Linux中c語言中漢字字元串的輸出
1、計算機用兩個位元組來表示一個漢字,「我」在內存里就是這樣存放的:CE D2。CE是str[0]的內容,D2是str[1]的內容。第一次循環輸出str[0],但是這個字元在ASCII字元集里代表這樣一個東西(不知道在這兒能不能正常顯示),但是Windows的命令提示符程序讀取到這里就會自動使用寬字元集,也就是說,它已經准備好讀取下一個字元,然後把他們當成一個字元顯示出來。於是就出現了那個漢字。
2、常式:
#include<stdio.h>
intmain()
{
printf("%c%c",(char)0xce,(char)0xd2);
}
『陸』 linuxc把utf-16be解碼成漢字怎麼做
如果是JS,可以試試這樣抄 alert(decodeURI('%E8%85%BE')); 就是說將UTF8編碼襲每兩位為一組,前面加%,然後用decodeURI或decodeURIComponent方法解碼,就可還原為所對應的漢字. 或者直接寫成函數: function u8decode(code){ return decodeURI(code.replace(/([A-F0-9]{2})/gi,'%$1')); }
『柒』 linux下c/c++ unicode字元串轉為漢字輸出,高分求答案
ascll碼0~33有一半是控制字元,肯定顯示不了的我就不說了
linux下字元亂碼首先想到的就是編碼問題,
Unicode不行就試試UTF-8等,
『捌』 LINUX中c語言怎麼把漢字存放到數組中
//代碼已測,我用的是一位數組,沒必要用二維數組
#include<stdio.h>
main()
{
charbuf[100]={0};
intlen;
FILE*f=NULL;
printf("readfromfile?y/n ");
if(getchar()=='y')
{
if((f=fopen("1.txt","rb"))==NULL)
{printf("openfilefailed.");return;}
len=fread(buf,1,sizeof(buf),f);
if(len){printf("%s ",buf);}
fclose(f);
}
else
{
printf("inputyourwords: ");
scanf("%s",buf);
if((f=fopen("1.txt","ab+"))==NULL)
{printf("openfilefailed.");return;}
//findwordlength
for(len=0;len<(sizeof(buf)-1);len++)
if(buf[len]==0&&buf[len+1]==0)
{break;}
len=fwrite(buf,1,len,f);
fclose(f);
}
}