『壹』 在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);
}
}