编译器无法用gbk编码
① 这个编译器的编码格式无论怎么设置都是GBK都无法设置成UTF-8有人知道是怎么回事吗
public byte[] gbk2utf8(String chenese){
char c[] = chenese.toCharArray();
byte [] fullByte =new byte[3*c.length];
for(int i=0; i<c.length; i++){
int m = (int)c[i];
String word = Integer.toBinaryString(m);
// System.out.println(word);
StringBuffer sb = new StringBuffer();
int len = 16 - word.length();
//补零
for(int j=0; j<len; j++){
sb.append("0");
}
sb.append(word);
sb.insert(0, "1110");
sb.insert(8, "10");
sb.insert(16, "10");
// System.out.println(sb.toString());
String s1 = sb.substring(0, 8);
String s2 = sb.substring(8, 16);
String s3 = sb.substring(16);
byte b0 = Integer.valueOf(s1, 2).byteValue();
byte b1 = Integer.valueOf(s2, 2).byteValue();
byte b2 = Integer.valueOf(s3, 2).byteValue();
byte[] bf = new byte[3];
bf[0] = b0;fullByte[i*3] = bf[0];bf[1] = b1;fullByte[i*3+1] = bf[1];bf[2] = b2;fullByte[i*3+2] = bf[2];
}
return fullByte;
}
② java 错误需要为class、interface或enum
[javac] HelloWorld.java:1: 需要为 class、interface 或 enum
[javac] 锘缝ackage com.csdn.demo;
[javac] ^
[javac] 1 错误
这个错误出现的主要原因是java文件的编码问题。
在中文操作系统中,使用一贯的“javac HelloWorld.java”方式编译UTF-8(带BOM)编码的.java源文件,在没有指定编码参数(encoding)的情况下,默认是使用GBK编码。当编译器用GBK编码来编译UTF-8文件时,就会把UTF-8(带BOM)编码文件的文件头的占3个字节的头信息,按照GBK中汉字占两个字节、英文占1个字节的特性解码成了“乱码”的两个汉字。这个源文件应该是用记事本另存存为UTF-8编码造成的。
对于非GBK及其子集编码(GB2312)的正确的源文件,编译方式为“javac -encoding "UTF-8" HelloWord.java”,这样代码错误的指定代码里就不会出现乱码的中文。
但是依然会有错误,提示“HelloWorld.java:1: 非法字符: \65279。
这是因为.java对于UTF-8编码,只识别UTF-8(不带BOM)那种。而记事本只支持保存文件为带签名的UTF-8,那有没有办法解决呢?
当然是有的,那就是使用EmEditor、EditPlus、UltraEdit或Notepad++之类的工具另存为UTF(不带BOM)(区别于带UTF + BOM)的编码文件。这时候使用“javac -encoding "UTF-8" HelloWorld.java”,就没有上述编码问题了。
也许有人会说,“我干脆都用GBK不就行了吗,为什么还要用UTF-8呢?”
这是因为UTF-8支持世界多种语言的文字,被世界多数国家接受,是国际通用编码,也是Java推荐使用的编码。Java集成开发环境Eclipse中默认编码就是UTF-8。如果使用GBK,尤其是做网站,在非汉语国家,将无法正常浏览。在信息化时代,国际交往日益频繁;做软件和网站,不能只着眼当前,也要为日后维护做优化、降低维护成本。
③ C编译器打开记事本文件乱码
多半是字符编码问题
重新手动输入一次
ASCII有128字符
ANSI有256个字符(前128个和ASCII相同)
unicode是双字节,理论上有大约256*256=65536个字符。
Windows 95/98/ME使用的是GBK(ANSI)内核编码(兼容ASCII),
Windows 2000/XP/2003是使用得是UNICODE内核编码(不直接兼容ASCII),但是通过代码页也可以直接调用ASCII、ANSI、GB2312、GBK、GB18030等编码字符
④ mac下clion,中文乱码,编辑器编码格式是utf-8,我切换成GBK乱码就好了,但我得每个文件都这么操作下
代码文件是GBK编码存储,因为代码部分的编码都是的ascii的所以对编译不影响。
实在想看代码注释,可以在clion弹出的框框点击Reload(对源码文件无影响)或convert(对源码文件有影响)。
问:按住ctrl+鼠标键可以实现查看函数本身,但同时会显示右键菜单?如何不显示右键菜单?
答:可能电脑安装了什么软件,例如有道词典或什么的会触发右键。默认情况下ctrl+鼠标左键不会弹出右键菜单。
问:以及过去了怎么回退到刚才的函数入口文件出?
答:按一下鼠标侧键的后退键。
建议:如果问题比较多,建议拆封成多个独立问题,或者用数字标号标一下,这么做可以显着提高问题被回答的概率。
码字不易,望采纳!
⑤ 怎么处理警告:编码 GBK 的不可映射字符
输入javac -encoding utf-8 文件名.java。就可以解决了。
当Java源代码中包含中文字符时,我们在用javac编译时会出现“错误:编码GBK的不可映射字符”。
由于JDK是国际版的,我们在用javac编译时,编译程序首先会获得我们操作系统默认采用的编码格式(GBK),然后JDK就把Java源文件从GBK编码格式转换为Java内部默认的Unicode格式放入内存中,然后javac把转换后的Unicode格式的文件编译成class类文件。
此时,class文件是Unicode编码的,它暂存在内存中,紧接着,JDK将此以Unicode格式编码的class文件保存到操作系统中形成我们见到的class文件。当我们不加设置就编译时,相当于使用了参数:javac -encoding GBK Test.java,就会出现不兼容的情况。
拓展资料:
javac 是java语言编程编译器。全称java compiler。javac工具读由java语言编写的类和接口的定义,并将它们编译成字节代码的class文件。javac 可以隐式编译一些没有在命令行中提及的源文件。用 -verbose 选项可跟踪自动编译。当编译源文件时,编译器常常需要它还没有识别出的类型的有关信息。对于源文件中使用、扩展或实现的每个类或接口,编译器都需要其类型信息。这包括在源文件中没有明确提及、但通过继承提供信息的类和接口。
JDK(Java Development Kit)称为Java开发包或Java开发工具,是一个编写Java的Applet小程序和应用程序的程序开发环境。JDK是整个Java的核心,包括了Java运行环境(Java Runtime Envirnment),一些Java工具和Java的核心类库(Java API)。不论什么Java应用服务器实质都是内置了某个版本的JDK。主流的JDK是Sun公司发布的JDK,除了Sun之外,还有很多公司和组织都开发了自己的JDK,例如,IBM公司开发的JDK,BEA公司的Jrocket,还有GNU组织开发的JDK
参考资料:网络-javac常见错误
⑥ 用codeblocks编写C 代码输出中文信息 怎么出现了乱码
Code::Blocks缺省文件编码是UTF-8
从菜单Settings->Compiler and debugger。。。。
打开编译器设定对话框,在Compiler setting tab上,选择Other Option,添加下面的设定
-fexec-charset=GBK -finput-charset=UTF-8
告诉编译器,文件输入字符编码是utf-8,执行时以gbk编码对待
⑦ notepad++写Java程序,只要出现中文编译就报编码GBK不可映射字符!
你选择第一个ANSI编码试试!因为你编码是使用了utf-8,解码中文,默认调用GBK,这里必须解码,编码,使用一致才可以显示。
⑧ 如何让latex编辑器采用 gbk 编码
不同编辑器有不同设置方法, 这个没有统一的
⑨ Javascript不支持gbk编码
你的js文件是放在哪里的?如果是以前编好的,可以用在网页上,没问题的,输出时会按网页的编码来输出。你可以先在页面上编写,然后复制过去。如果,你想看的话,需要让编译环境来确定它的编码,我不知道你的环境是什么,给你看个MyEclipse的例子吧:这个时候,js本身并没变,只是编译器可以识别了。而且,各编译器的设置也不一样,要自己好好找找 在我的印象里 css 可以设置字符集,js设置不了,如果LZ有答案的话,请共享,谢谢。