|
![]() |
名片设计 CorelDRAW Illustrator AuotoCAD Painter 其他软件 Photoshop Fireworks Flash |
|
Java 的 基 本 的char 类 型 被 定 义 成 无 符 号 的16 位, 它 是Java 中 唯 一 的 一 个 无 符 号 类 型。 使 用16 位 表 达 字 符 的 主 要 原 因 是 要 让Java 能 够 支 持 任 何Unicode 字 符, 因 此 而 使 得Java 适 用 于 描 述 或 显 示 任 何 被Unicode 支 持 的 语 言, 可 移 植 性 也 就 会 更 好。 但 是, 能 够 支 持 某 种 语 言 的 字 符 串 显 示, 和 能 够 正 确 打 印 某 种 语 言 的 字 符 串, 常 常 是 两 个 不 同 的 问 题。 由 于Oak(Java 最 初 的 代 号) 开 发 组 的 主 要 环 境 是Unix 系 统 和 某 些 源 于Unix 的 系 统, 所 以 对 开 发 人 员 来 说, 最 为 方 便 实 用 的 字 符 集 是ISO Latin-1。 相 应 地, 这 一 开 发 组 就 带 有Unix 遗 传 性, 也 就 导 致 了Java 的I/O 系 统 在 很 大 程 度 上 以Unix 的 流 概 念 为 模 型, 而 在Unix 系 统 中, 每 一 种I/O 设 备 都 是 用 一 串8 比 特 的 流 来 表 示。 这 种 在I/O 系 统 方 面 取 模 于Unix 的 做 法, 使 得Java 语 言 拥 有16 位 的Java 字 符, 而 却 只 有8 位 的 输 入 设 备, 这 样 就 给Java 带 来 了 些 不 足。 因 此 在 任 何 一 处Java 字 符 串 按8 位 来 读 入 或 写 出 的 地 方, 都 得 有 一 小 段 程 序 代 码, 被 称 为" 劈(hack)", 来 将8 位 的 字 符 映 射 成 为16 位Unicode, 或 将16 位 的Unicode 劈 成8 位 字 符。 例子: 下面程序代码:说名利用InputStringReader类,从原始的byte数据来转变成既定的字符集 import java.io.*; public class rfnew { public static void main(String args[]) { FileInputStream fis; InputStreamReader isr; char ch; try { fis = new FileInputStream("gq.txt"); isr = new InputStreamReader(fis); while (true) { ch = (char) isr.read(); System.out.print(ch); System.out.flush(); if (ch == \\\'/n\\\') break; } fis.close(); } catch (Exception e) { } System.exit(0); } } InputStringReader类的说明: An InputStreamReader is a bridge from byte streams to character streams: It reads bytes and decodes them into characters using a specified charset. The charset that it uses may be specified by name or may be given explicitly, or the platform\\\'s default charset may be accepted. 返回类别: 教程 上一教程: 对struts一点理解总结 下一教程: JAVA代码编写的30条建议 您可以阅读与"Java语言的中文处理"相关的教程: · JAVA繁体中文处理完全攻略 · JDBC中的中文处理 · Java语言中字符的处理 · 对于初学者学习Java语言的建议 · java 与 mysql 中文问题的处理 |
![]() ![]() |
快精灵印艺坊 版权所有 |
首页![]() ![]() ![]() ![]() ![]() ![]() ![]() |