解决java文件编码和windows7系统(中文版)默认编码冲突所导致的乱码情况

开篇从一个比较简单但是也比较蛋疼的问题开始吧。

背景介绍:我是新手小白,初学java。

问题介绍:在使用UTF-8编码格式写java文件时,编译出现问题。

原因分析:1、java文件的编码格式是UTF-8,windows7系统(默认编码格式为GBK)上的jdk看不懂了,所以报错了;

      2、第一行原本应该是public class的p位置竟然变成了两个奇葩的汉字,导致无法解析。

解决方法

关于第一个问题:在windows7系统下,新建一个系统变量(计算机图标上右键——属性——左侧“高级系统设置”——“高级”环境变量——系统变量——新建),变量名为JAVA_TOOL_OPTIONS,变量值为-Dfile.encoding=UTF-8。这样在每次执行java类的工具时,会临时地设置编码格式为UTF-8(不过相应的报错信息你也会看不懂咧~~,所以这个办法最好在确认除了编码问题外没有其他问题时用哦)。

关于第二个问题:这两个奇葩汉字事实上是由于windows记事本(好吧,我再也不用这个写java了。。)的默认编码格式是ANSI,转成UTF-8时其实并不是纯粹的UTF-8,而是“UTF-8+BOM”的格式。没错,这个BOM就是报错的原因。推荐的解决方法是使用Eclipse等IDE类工具或者是EditPlus等文字编辑器(简单说下EditPlus这个,在工具——配置(用户)自定义工具——左侧点击文件选项,右侧可以设置文本的默认格式,选择UTF-8就可以了)。

时间: 2024-11-05 21:55:34

解决java文件编码和windows7系统(中文版)默认编码冲突所导致的乱码情况的相关文章

巧妙地解决Java文件重命名失败的问题

一.问题描述 1.大家在用log4j时,可能会遇到下面的一个报错信息: Failed to rename [/opt/proj.log] to [/opt/proj.log.2014-03-20]. 这个算是log4j.DailyRollingFileAppender的一个BUG,网上很多修改方案,不过我能搜到的,都不理想. 2.一般性问题:文件重命名失败 详细的内容可以参见论坛的帖子:http://bbs.csdn.net/topics/330195396 关键内容如下: 我也遇到了和LZ相同

“LINUX系统”与“客户端”语言设置“不一致”导致“显示乱码”

原创作品,出自 "深蓝的blog" 博客,欢迎转载,转载时请务必注明以下出处,否则追究版权法律责任. 深蓝的blog:http://blog.csdn.net/huangyanlong/article/details/40979421 实验环境 情况一 实验平台 WIN7 旗舰版 64bit 虚拟机软件 VM Virtual Box 4.2 虚拟机操作系统 Cent0S 5.6 语言英文 CRT版本 7.1.1 情况二 实验平台 WIN7 旗舰版 64bit 虚拟机软件 VM Virt

使用cmd打开java文件,报错:“错误,编码GBK的不可映射字符”

今天使用EditPlus写了一个小程序,用cmd运行时报错--"错误,编码GBK的不可映射字符". 处理办法是用EditPlus另存为时,把编码格式由UTF-8改为ANSI. 然后使用Notepad++打开发现java程序的注释是乱码. 也许Notepad++有别的办法处理这个问题,但从原生功能来说,写java程序,EditPlus优于Notepad++.

系统属性file.encoding在JVM启动后,再次设置无法对系统的默认编码造成影响

原因和解决方法: https://bugs.java.com/bugdatabase/view_bug.do?bug_id=4163515 https://stackoverflow.com/questions/361975/setting-the-default-java-character-encoding/362006#362006 file.encoding由谁设置? 首先file.encoding是一个系统属性.可以在启动JVM 前设置 如: java -Dfile.encoding=

关于解决运行sql文件时,找不到MySQL默认编码utf8mb4的问题

本人小白一名,最近碰到了一个问题,在navicat导入mysql文件时,报出mysql找不到utf8mb4编码的问题,特此记录自己如何导入成功的. 我去百度查了自己的mysql版本,属于比较低的版本,所以默认编码中没有utf8mb4,默认编码是utf8,学生嘛,用不到那么高的版本,基本低版本的就足够开发一些实训项目的了. 首先看到这个错误,我的第一反应是修改这个sql文件的编码格式,即将utf8mb4->utf8,以记事本的形式打开这个sql文件 编辑->替换->将所有utf8mb4换成

Java IO_003.Reader与Writer--字符流以及编码对数据的操作(读取与写入)

Java IO之Reader与Writer对象常用操作(包含了编码问题的处理) 涉及到文件(非文件夹)内容的操作,如果是纯文本的情况下,除了要用到File(见之前文章),另外就必须用到字符输入流或字符输出流. 字符输入流:该流处理时,数据由外部流向程序(内存),一般指代“读取字符”,更清晰点地说:从外部读取字符数据到内存中. 字符输出流:该流处理时,数据由程序(内存)流向外部,一般指代“写入字符”,更清晰点地说:将字符数据从内存写入到外部. 在Java中,可使用:Reader 与 Writer 

Python 设置系统默认编码 转

解决UnicodeEncodeError: 'ascii' codec can't encode characters in position 问题(转) 本文转载自:http://blog.csdn.net/intel80586/article/details/8566057 Python在安装时,默认的编码是ascii,当程序中出现非ascii编码时,Python的处理常常会报这样的错UnicodeDecodeError: 'ascii' codec can't decode byte 0x

myeclipse下java文件乱码问题解决

中文乱码是因为编码格式不一致导致的.1.进入Eclipse,导入一个项目工程,如果项目文件的编码与你的工具编码不一致,将会造成乱码.2.如果要使插件开发应用能有更好的国际化支持,能够最大程度的支持中文输出,则最好使 Java文件使用UTF-8编码.3.修改默认编码:在菜单导航栏上Window-->Preferences 打开"首选项"对话框,左侧导航树,导航到 General-->Workspace.Windows 7平台默认为GBK,简体中文操作系统Windows XP.

java文件中文在MyEclipse中打开变成了乱码

中文乱码是因为编码格式不一致导致的. 进入Eclipse,导入一个项目工程,如果项目文件的编码与你的工具编码不一致 将会造成乱码. 如果要使插件开发应用能有更好的国际化支持,能够最大程度的支持中文输出,则最好使 Java文件使用UTF-8编码. 修改默认编码: 在菜单导航栏上Window-->Preferences 打开"首选项"对话框,左侧导航树,导航到 General-->Workspace. Windows 7平台默认为GBK,简体中文操作系统Windows XP.W