为啥java编程中写的汉字变成乱码了???

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为啥java编程中写的汉字变成乱码了???相关的知识,希望对你有一定的参考价值。

你的编码格式选择的不对,右键单击项目,点击Properties:

将格式换成GBK或者UTF-8就行了

参考技术A

java编程中写的汉字变成乱码了,原因:

    可能用的是note来编写 的代码的,这样 转到IDE环境下, 就会编码不同,而出现乱码。

    IDE环境的编码改变了, 所以 也会出现乱码。

解决办法:

  1.可以将你的IDE文本属性设置为utf-8或者gbk,普遍java ide的默认编码为iso

  2.用note编写, 将代码 保存为UTF-8的格式 。

  3.在编写代码时所用的字符集要和显示 的时候的字符集一样, 才不会出现乱码。

参考技术B 您好!
本身编辑文件的时候用的编码不一样.. 例如. 你写的类文件起始编码为 GB-2312 的 (记事本)而用ide 工具打开后会出现乱码. 那就是ide 本身默认打开文件的编码方式不一样.当然 相反也是.. ide 编写的文件 默认编码和打开方式 例如 记事本所 或者 html 打开的 可能也会出现乱码, 那就需要,, 统一编码. 简单的方法就是 将文件用 记事本打开.. 然后另存. 另存的过程中有个 编码方式选择. 选择与编译器相同的就可以了,
也可以改变编译器的默认编码.
希望能帮到您!敬请采纳!
中国物联网校企联盟
参考技术C 不是变成乱码了。是一个汉字占两个字节,你如果在删除汉字的时候,他是一个字节一个字节的删的,所以你如果没有正好删掉两个字节,剩下的字节就乱了。 参考技术D 没错,这是由于你的IDE设置有关,你可以将你的IDE文本属性设置为utf-8或者gbk,普遍java ide的默认编码为iso

navicat我用UTF-8格式运行SQL语句插入的数据为啥汉字会变成乱码

你的数据库表或者字段的的字符集设置的不是utf8或者utf8mb4,所以存进去变成乱码了 参考技术A 我说下我遇到的问题吧,不知道对你有没有帮助。我也是用的Navicat,开始数据显示正常;用cmd检索数据就不显示中文;再打开Navicat也不显示中文了。最后把mysql里my.ini中字符集改成GBK就好了,原来是UTF8。 参考技术B 不在于你的navicat的设置,
而在于你的数据库的设置,是否支持UTF-8?
mysql 创建数据库时指定编码很重要,很多开发者都使用了默认编码,乱码问题可是防不胜防。制定数据库的编码可以很大程度上避免倒入导出带来的乱码问题。

网页数据一般采用UTF8编码,而数据库默认为latin 。我们可以通过修改数据库默认编码方式为UTF8来减少数据库创建时的设置,也能最大限度的避免因粗心造成的乱码问题。

我们遵循的标准是,数据库,表,字段和页面或文本的编码要统一起来
我们可以通过命令查看数据库当前编码: mysql> SHOW VARIABLES LIKE 'character%';
发现很多对应的都是 latin1,我们的目标就是在下次使用此命令时latin1能被UTF8取代。

第一阶段:
mysql设置编码命令

复制代码代码如下:

SET character_set_client = utf8;
SET character_set_connection = utf8;
SET character_set_database = utf8;
SET character_set_results = utf8;
SET character_set_server = utf8;

然后 mysql> SHOW VARIABLES LIKE 'character%'; 你可以看到全变为 utf8 。
但是,这只是一种假象

此种方式只在当前状态下有效,当重启数据库服务后失效。
所以如果想要不出现乱码只有修改my.ini文件,
从my.ini下手(标签下没有的添加,有的修改)
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
default-character-set=utf8
以上3个section都要加default-character-set=utf8,平时我们可能只加了mysqld一项。
然后重启mysql,执行
mysql> SHOW VARIABLES LIKE 'character%';
确保所有的Value项都是utf8即可。
但是可恶的事情又来了,
|character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | latin1 |
| character_set_system | utf8 注意 该配置| character_set_server | latin1 无法设置成UTF8 交互时候仍然会出现乱码。

第二阶段:找到下面这东东
X:\%path%\MySQL\MySQL Server 5.0\bin\MySQLInstanceConfig.exe
重新启动设置,将默认编码设置为utf8.这样就能达到我们所要的效果了。
mysql> SHOW VARIABLES LIKE 'character%';
+--------------------------+---------------------------------------------------------+
| Variable_name | Value |
+--------------------------+---------------------------------------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | C:\Program Files\MySQL\MySQL Server 5.0\share\charsets\ |
+--------------------------+---------------------------------------------------------+
8 rows in set
另外注意事项:

1、建表时加utf8,表字段的Collation可加可不加,不加时默认是utf8_general_ci了。

复制代码代码如下:

CREATE TABLE `tablename4` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`varchar1` varchar(255) DEFAULT NULL,
`varbinary1` varbinary(255) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8

2、网页xxx.php/jsp保存时选择utf8编码,页头最好加上
header('conten-type:text/html;charset=utf-8');
在执行CRUD操作前先执行一下
mysql_query("set names utf8");

以上是关于为啥java编程中写的汉字变成乱码了???的主要内容,如果未能解决你的问题,请参考以下文章

编辑java程序时,DOS环境下汉字显示乱码,为啥?

如何在js文件中写汉字?

java setCharacterEncoding 不起作用,汉字乱码

navicat我用UTF-8格式运行SQL语句插入的数据为啥汉字会变成乱码

navicat我用UTF-8格式运行SQL语句插入的数据为啥汉字会变成乱码

如何在java中将汉字输出成数字