12.15字符编码(血干JAVA系列)

12.15.1 Java常见编码简介

在这里插入图片描述

12.15.2得到本机的编码显示

在 前 面 讲 解 常 用 类 库 的 时 候 曾 经 介 绍 过 , 使 用 S y s t e m 类 可 以 取 得 与 系 统 有 关 的 信 息 , 所 以 直接使用此类就可以找到系统的默认编码,使用如下方法:

public static Properties getProperty()

【例12.68】使用上述方法得到JVM的默认编码

package jiaqi;

public class demo437_1 {

	public static void main(String[] args) {
		// TODO 自动生成的方法存根
		System.out.println("默认编码:");
		System.out.println(System.getProperty("file.encoding"));
	}

}

在这里插入图片描述

从上面程序可以发现,现在操作系统的默认编码是GBK,如果此时使用了 ISO8859-1编码, 则肯定会出现乱码。

12.15.3乱码产生

下 面 通 过 一 个 范 例 来 讲 解 乱 码 的 产 生 , 现 在 本 地 的 默 认 编 码 是 G B K , 然 后 通 过 I S O 8 8 5 9 - 1 编 码 对 文 字 进 行 编 码 转 换 。 如 果 要 想 实 现 编 码 的 转 换 可 以 使 用 String类中的 getBytes ( String charset)方法,此方法可以设置指定的编码,该方法的格式如下:

public byteQ getBytes(String charset);

【例12.69】使用1SO8859-1编码

package jiaqi;

import java.io.*;

public class demo438_1 {

	public static void main(String[] args) throws Exception
	{
		// TODO 自动生成的方法存根
		File f = new File("d:" + File.separator + "test.txt");
		OutputStream os = new FileOutputStream(f);
		
		byte b[] = "中国,爱你!".getBytes("ISO8859-1");
		
		os.write(b);
		
		os.close();
		
		
	}

}

在这里插入图片描述
可 以 发 现 , 因 为 编 码 不 一 致 , 所 以 在 保 存 时 出 现 了 乱 码 。 在 J a v a 的 开 发 中 , 乱 码 是 一 个 比 较 常 见 的 问 题 , 乱 码 的 产 生 就 有 一 个 原 因 , 即 输 出 内 容 的 编 码 ( 例 如 : 程 序 指 定 ) 与 接 收 内 容的编码(例如:本机环境默认)不一致。

  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿斯卡码

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值