




已阅读5页,还剩42页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
级本科毕业论文 计算机学院 本本 科科 毕毕 业业 论论 文文 视音频聊天室 Video and Audio chat room 学院名称 专业班级 学生姓名 指导教师姓名 指导教师职称 年 月 级本科毕业论文 计算机学院 1 视音频聊天室视音频聊天室 摘要摘要 随着多媒体技术与 IP 网络通信技术的飞速发张 基于 IP 网络的视频聊天系统为异 地分布的人们提供一个包括音 视 问 图等多种媒体的全方位感知的空间环境 使人们 以自然的方式进行交流 必将成为现代信息社会不可缺少的一种需求和技术热点 由于目 前大部分的视频聊天系统对硬件的依赖性较强 利用软件来实现多点控制 媒体流的传输 等技术 来代替传统视频聊天系统的昂贵且不可靠的硬件部分是本文的主要研究内容 本文首先介绍了多媒体通信的发展状况 接着描述了视频聊天系统结构和组成 国内 外研究情况以及今后的发展前景 并对视频聊天系统设计的协议和关键技术做了详细的分 析 本系统采用 Java 媒体框架 简称 JMF 作为平台 JMF 提供了一套通用的跨平台的 JAVA API 来访问底层的媒体框架 为对媒体数据进行获取 处理和传输的管理童工了一套 统一的体系结构和消息通信协议 利用 JMF 的无缝扩展以支持新增内容类型格式 优化对 所支持格式的处理并创建新的再现机制 通过 JAVA 平台的优越性 做到 编写一次 处处 运行 论文在分析了 JMF 的结构和工作原理后 采用 JMF 实现系统中的多媒体的处理 关键词 关键词 JMF JAVA 媒体框架 多媒体通信 实时传输协议 级本科毕业论文 计算机学院 2 Video and Audio chat room Abstract With the development of multimedia and network communicating technolo gy video chat system based on IP provides an envirconment space with omnibearin g multiple media perception including audio video text as well as graphics for users i n different areas By this system they can communicate with each other in the natu re mode and will be a necessary demand and technological hotspot for the modem society Owing to most of video conferencing systems depend upon hardware more deeply at present therefore it is main research that realize the technology of multipoi nt control and multimedia stream transmitting by software instead of costly and dick ey hardware parts of video chat system traditionally In this paper we first refer to the development of multimedia communication follo wing describe the construction and componets of video chat system and developing trend in future analyze the protocol and key technology in detail which including of i n video chat system This system adopted Java Media Framework shortended from J MF as exploitation platform Java Media Framework provides a common cross platfor m Java API for accessing underlying media managing the acquisition processing and delivery of time based media data By seamlessly extendabilitty of JMF to support a dditional content types and formats optimize handling of supported formats and creat e new presentation mechanisms By exploting the advantages of the Java platform J ava delivers the promise of Write Once Run Anywhere The thesis adopts JMF to r ealize the treatment of the multimedia in the system after analyzing structure of JM F and operating principle Key words JMF Java Media Frame Multimedia Communication Real Time Transport Prot ocol RTP 级本科毕业论文 计算机学院 3 目 录 第一章第一章 IPIP 网络的多媒体通信概述网络的多媒体通信概述 1 1 1 多媒体通信的发展过程 1 1 2 多媒体通信的基本知识 4 1 3 多媒体通信服务的分类 6 第二章第二章 视音频聊天系统概述及结构组成视音频聊天系统概述及结构组成 7 2 1 视音频聊天系统概述 7 2 2 视音频聊天系统的组成 7 第三章第三章 视音频聊天系统相关技术视音频聊天系统相关技术 9 3 1 JAVA媒体框架 JMF 9 3 2 RTP RTCP 协议 14 3 3 组播技术 17 第四章第四章 视音频聊天系统设计视音频聊天系统设计 20 4 1 安装与配置 20 4 2 主界面 20 4 3 建立服务端与客户端通信 23 4 4 多线程 27 4 5 检查多媒体格式 29 4 6 传输 RTP 实时数据 31 4 7 接收 RTP 实时数据 32 级本科毕业论文 计算机学院 4 4 8 技术难点及解决方案 37 第五章第五章 结结 论论 39 致致 谢谢 40 参考文献 参考文献 41 级本科毕业论文 计算机学院 1 第一章第一章 IP 网络的多媒体通信概述 1 1 多媒体通信的发展过程 顾名思义 多媒体通信 1 是指在一次呼叫过程中能同时提供多种媒体信息 例如声 音 图像 图形 数据 文本等 的新型通信方式 和电话 电报 传真以及计算机通信 等传统的单一媒体通信比较 多媒体通信时的相隔万里的用户能声像图文并茂地交流信息 分布在不同地点的多媒体信息能步调一致地作为一个完整的信息呈现在用户面前 而且用 户对通信全过程具有完备的交互控制能力 1 1 1 通信技术发展的三次革命 从 1837 年莫尔斯发明电报和 1876 年贝尔发明电话以来 通信新服务经历了长达一个 多世纪的发展 并已走进了千家万户 成为社会生活 工作和人们交流信息所不可缺少的 重要工具 通信服务由传统的电报 电话单一品种扩大到传真 数据通信 图像通信 电 视广播 多媒体通信等新服务领域 通信技术的日新月异 传输媒介有缆线 无线短波 微波 卫星和光缆 交换设备由机电制布线逻辑方式向计算机程序控制方式发展 传输设 备由模拟载波向数字脉冲调制方式发展 终端设备由机电方式向微处理控制的多功能终端 发展 通信方式由人工 半自通向全自动方向发张 通信网友单一的服务网向综合方向发 展 通信地点由固定向移动发展 总之 最近 20 多年来通信技术和服务发生了巨大的变化 纵观通信技术发展的全过程 可将其发展过程划分为三次革命 第一次通信技术的革命是百年前电话的问世 电话网是开放电话服务为广大用户服务 的通信网络 在电话网中 主要传输的服务是话音 但是只要增加少量设备也还可以传送 传真 中速数据等非话音服务 电话网络采用的交换技术是基于电路交换的通信技术 电 路交换是两台通信设备或中断相互通信时 使用的一条实际物理链路 在通信中自始至终 使用该链路传输 且不允许其他设备同时共享该链路 电路交换包括公用电话网 公用电 报网和电路交换公用数据网 CSPDN 电路交换适用于一次接续后传输长报文的通信 其 优点是实时性强 延时小 一般是一个字符甚至到一个比特均可传送 交换设备成本较低 缺点是链路 尤其是中继线利用率低 电话网单枪的发展方向为程控数字网 即各级交换 中心均装用程控数字交换机 传输电路均为数字电路 程控数字网通信质量优良 自动化 程度高 故发展较快 级本科毕业论文 计算机学院 2 第二次通信革命是半个世界前电视机和有线电视网的出现 电视的出现改变了电话网 络只能传输话音的缺点 它不仅使用户能闻其声 同时还能见其人 特别是有线电视的出 现 其视频信号的传输质量和带宽都得到很大的改善 也使得基于广播电视的通信技术进 入了快速发展阶段 达到了鼎盛时期 成为三大媒体通信技术之一 但由于目前的有线电 视 CATV 是单向传输 采用俄式广播技术 并且该网络缺乏交换机制以及网络安全管理 的功能 这就使得通过 CATV 提供双向对称 不对称服务非常困难 所以改造现有的单向网 络编程双向网络 即在原有的树形广播网络中传输双向的信息是利用 CATV 实现除电视服务 以外的其他多媒体服务的关键 第三次通信革命是英特网的迅速崛起所引起的 IP 通信你技术 IP 通信技术已开始成为 通信舞台上的主角 并与语音通信 视频通信形成新的产业汇聚 着用新兴的以 IP 分组交 换为核心的通信技术具有如下特点 1 从技术上说 新的革命实际上就是从基于电路交换的技术转变为 IP 分组交换技 术 分组交换也成为包交换 它将用户发来的报文分割成若干定常的数据块 分组 让 它们以 存储 转发 方式在网络中传输 每一个分组信息都在有接受地址和发送地址 的标志 在传送数据分组之前 必须首先进行路由建立虚电路 然后沿虚电路传送 分组 交换在链路上采用动态复用的技术传送各个分组 所以链路利用率高 分组交换兼有电路 交换和报文交换的优点 是数据交换方式中一种比较理想的方式 传统电话网络知识简单 地建立连接 而新的网络中 IP 分组承担的信息在 IP 头的比特编码具有更强的智能化功能 2 从模式看 IP 通信是一种全新的通信模式 在该模式中 数据正迅速取代语音成 为主要的网络流量 因特网 内联网和外联网上的数据流量急剧增加 IP 网络互联已无可 争辩地成为新世界的基础 3 从服务商看 传统电信服务主要就是电话业务 所以电信公司实际上只是电话公 司 因特网的普及使这一格局很快发生了改变 一批因特网服务供应商迅速崛起 其服务 范围越来越广 因特网具备更丰富的服务内涵 这其中包括很多多媒体数据服务的实现 如 IP 话音 IP 图像 IP 电视会议等 更加丰富的是增值服务 其中最具代表性的是目前 极为流行的 IP 虚拟专用网等 另外 IP 通信是通信技术发展的趋势所在 目前其激素的整体发展趋势是由电路交换 级本科毕业论文 计算机学院 3 向分组交换演化 IP 网络将是未来通信网络的基础 其突出表现在以下几个方面 1 IP 与 ISDN 综合服务数字网 ATM 异步转移模式 等网络技术不同 IP 网络 是典型的由市场驱动发展起来的 据统计 达到相同的用户数 电话网络用了将近一个世 纪 电视用了 30 年 而因特网仅经历了短短的几年 在因特网上的服务量正在以指数规律 增长 同时 网上的服务范围也在不断地扩大 除了传统的 WEB 浏览 信息检索 电子邮 件 远程医疗 IP 电视会议 远程协同工作等都在迅猛发展中 2 在 IP 服务迅猛发炸的同时 IP 网络技术也在不断升级 IP 对底层承接技术有广 泛的适应性 IP 核心网络由软件路由器加窄带中继发展到吉比特甚至以太比特 IP 路由交换 机加宽带传输网络 IP 接入网络有传统的低速调制解调器 ISDN 发展到 ADSL 和 Cable Modem 3 IP 与一同通信必将紧密结合 互相参透 伴随因特网的飞速发展 移动通信也就 土匪猛进 但移动通信的服务迄今为止都是传统的语言通信占主导地位 移动通信网络本 质上是电路交换通信网 发展移动数据服务是移动通信运营商的战略方向 借助于 wap 的 web 浏览 随时随地进行的电子商务 移动网上银行 移动 IP 电话等服务于是着因特网和 移动通信无缝结合的前景和未来 特别是第三代移动网络发展随着分组服务器的急剧增长 和 IP 技术的完全成熟 特别是今年 3G 网络运营商牌照的发放 加速了各种服务向 IP 网络 的统一 随着技术的成熟 形成一个真正的综合服务网络已经为期不远了 1 1 2 多媒体通信的发展 20 世纪 80 年代初 美国 日本和欧洲的计算机公司开始致力于多媒体技术的研究 把 该技术应用于 PC 首先建立了基于局域网 LAN 的多媒体通信系统 如美国 Xerox 公司的 以太电话 Etherphone 可以说是最早的多媒体通信系统 对企业特别是大公司而言 在经营活动中 希望借助更先进通信系统达到缩短产品投 放市场的时间 改善对用户的服务 减少差旅支出等目的 对个人而言 由于生活环境日 益复杂 生活节奏越来越快 也希望能随时的获取信息 并采用计算机协同工作 CSCW 方式来提高工作效率 上述的需求为有建设多媒体通信才是解决的办法 国外多媒体通信的研究开发首先是基于窄带综合服务数字网 N ISDN 如美国 AT 设置背景色 问候语 WelcomeLab setText 欢 迎 进 入 聊 天 室 请 文 明 聊 天 WelcomeLab setFont new Font u6977 u4f53 GB2312 Font BOLD 18 设置 问候语的字体 楷体 字形和字号 u6977 u4f53 代表具体含义将统一在 4 2 2 中 解 释 WelcomeLab setForeground java awt Color red 设置前景色 add WelcomeLab 将设置好的 TEXT 加入到 FRAME 框架中 WelcomeLab setBounds 70 605 500 20 设置 text 框的位置 宽和高 文字输入界面 级本科毕业论文 计算机学院 23 textArea1 setBackground Color cyan 设置背景色 textArea1 setFont new Font u5b8b u4f53 Font PLAIN 14 14 号 宋体 textArea1 setLineWrap true textArea1 setWrapStyleWord true 实现自动换行 scrollPane1 setViewportView textArea1 添加并显示 textArea1 窗口 add scrollPane1 将 scorllPan1 这个滚动窗口容器添加进框架 scrollPane1 setBounds 15 90 570 395 设置窗口位置和大小 文字显示界面 textArea2 setBackground Color cyan scrollPane2 setViewportView textArea2 add scrollPane2 scrollPane2 setBounds 15 520 495 80 发送按钮 Send setText u53d1 u9001 add Send Send addActionListener this Send setBounds 510 530 70 23 其他几个按钮如清除 视频接收 音频接收等的设置方式与发送按钮一致 只需要将 代表它们的对象 send accept giveup 替换发送按钮代码中的 Send 就可以了 如果要 改变按钮的位置 则需要修改 setBounds 方法 按上例 setBounds 中 4 个数字意义为 510 代表按钮出现的 X 轴位置 530 代表按钮出现的 Y 轴 70 代表按钮的宽 23 代表按钮 的高 假设其他按钮需要修改它们的位置的话 只需要修改成对应的数值就可以了 例如视频接收按钮的设置 Accept setText u89c6 u9891 u63a5 u6536 级本科毕业论文 计算机学院 24 add Accept Accept addActionListener this Accept setBounds 605 298 90 23 登录界面如图 4 2 所示 图 4 2 登录界面 4 3 建立服务端与客户端通信 1 TCP UDP 协议推动力客户 服务器通信模式的广泛运用 在通信的两个进程中 一 个进程为客户进程 另一个进程为服务器进程 客户进程向服务器进程发出要求某种服务 的请求 服务器进程响应该请求 如图 4 3 所示 通常 一个服务器进程会同时为多个客 户进程服务 图中服务器进程 B1 同时为客户进程 A1 A2 和 B2 提供服务 级本科毕业论文 计算机学院 25 图 4 3 客户进程 A1 A2 和 B2 清酒服务器进程 B1 的服务 这个系统的程序基本是建立在 TCP IP 协议的基础上的 致力于实现应用层 传输层向 应用层提供了套接字 Socket 接口 Socket 封装了下层的数据传输细节 应用层的程序通过 Socket 来建立与远程主机的连接 以及进行数据传输 站在应用层的角度看 两个进程之 间的一次通信过程从建立连接开始 接着交换数据 到断开连接结束 套接字可看作是通 信线路两端的收发器 进程通过套接字来手法数据 如图 4 4 所示 图 4 4 套接字可看作是通信连接两端的收发器 2 服务端的设计基本可分为五个部分 a 创建一个 ServerSocket 对象 在指定的端口上监听客户端发来的请求 例如 该设计所 采用的 6666 端口 b 在接收请求时 服务端的 accept 方法将返回客户端一个 socket 对象 c 使用 socket 对象创建输入 输出流对象 主机 A主机 B 客户进程 A1 端口 1000 客户进程 A1 端口 2000 服务器进程 B1 端口 80 客户进程 B2 端口 1000 进程 A1 SocketSocket 进程 B1 TCP 连接 级本科毕业论文 计算机学院 26 d 通过输入 输出流与客户端进行交互 e 交互完毕后 关闭输入 输出流 撤消 socket 对象 相关代码 创建代表服务器的 ServerSocket 对象和返回用的 socket 对象 ServerSocket server null Socket you null 定义服务器所需要监听的端口 和获取客户端的 IP 地址 try server new ServerSocket 6666 服务端的监听端口 you server accept InetAddress address you getInetAddress 获得客户端的 ip 地址 System out println 用户的 IP address catch IOException e 创建输入 输出流对象 DataOutputStream out null DataInputStream in null try in new DataInputStream socket getInputStream out new DataOutputStream socket getOutputStream catch IOException e 当服务端程序运行时自动开始监听服务器端正常工作 并开通与各客户端的联接通道 服务器端会一直监听下去直到应用程序退出 服务器端 IP 为运行时所在的机器 IP 地址 服务器端口 Port 用于监听客户端之间的通信 各客户端设置的服务器 IP 及 Port 必须 与服务器端一致 一旦服务器开始监听 则其 IP 地址和端口将不能更改 直至程序退出 3 客户端的设计基本可分为四个部分 a 在客户端创建 socket 对象建立与服务器端的连接 级本科毕业论文 计算机学院 27 b 用 socket 对象创建输入 输出流 c 客户端与服务端进行交互 通讯 d 通讯完毕以后 关闭输入 输出流和撤消 socket 对象 相关代码 定义 socket 对象和输入 输出流对象 Socket socket null DataInputStream in null DataOutputStream out null 创建 socket 连接 并且用该对象创建输入 输出流 try socket new Socket 192 168 1 28 6666 对应服务端的地址和监听端口 in new DataInputStream socket getInputStream 输入流 out new DataOutputStream socket getOutputStream 输出流 catch IOException ee 作为客户端程序 它的端口是由操作系统随机产生的 每当客户程序创建一个 Socket 对象时 操作系统就会为客户分配一个端口 在客户进程中 Socket 对象包含了本地以及 对方服务器进程的地址和端口信息 在服务器进程中 Socket 对象也包含了般地以及对方客 户进程的地址和端口信息 客户进程允许建立多个连接 每个连接都有唯一的端口 在编 写程序的时候 一般只要显示的为服务器程序中的 ServerSocket 设置端口 而不必考虑客 户程序所用的端口 服务器端启动过程如图 4 5 所示 级本科毕业论文 计算机学院 28 图 4 5 服务器端的启动 客户端连接到服务端过程如图 4 6 所示 图 4 6 客户连接过程 4 4 多线程 聊天系统的实际应用要求服务器具有同时为多个客户提供服务的能力 任何时刻 服 务器都有可能接收到大量的客户请求 每个客户都希望快速得到服务器的响应 可以用并 发性能来衡量一个服务器同时响应多个客户的能力 如图 4 7 所示 一个具有好的并发性 能的服务器 必须符合两个条件 a 能同时接收并处理多个客户连接 b 对于每个客户 都会迅速给予响应 级本科毕业论文 计算机学院 29 图 4 7 服务器程序用多线程处理多客户响应 相关代码 while true try server new ServerSocket 6666 接收客户连接 if firstIn Chatt f new Chatt Thread t new Thread f 创建新的工作线程 创建 ServerSocket 接收连接 accept 把任务委派给工作线程 主线程工作线程 等待任务 接收请求数据 通信是否结 束 发送响应数据 关闭连接 是 否 级本科毕业论文 计算机学院 30 firstIn false catch IOException e1 System out println 正在监听 try you server accept InetAddress address you getInetAddress System out println 用户的 IP address catch IOException e if you null Server thread peopleThread new Server thread you peopleList atVideo atAudio peopleThread start 启用新的工作线程 else continue 4 5 检查多媒体格式 在传输视频信息时 对于 JPEG 编码格式 视频图像的宽和高是 8 像素的整数倍 对于 H 263 编码格式 只支持三种图像大小 即 325 288 176 144 和 128 96 像素 只有 满足了这些条件 才可以正常传输视频信息 所以 多媒体应用程序需要对视频格式进行 检查 将不满足条件的尺寸全部进行变换 变换为标准格式 以便正常传输 Format checkForVideoSizes Format original Format supported 级本科毕业论文 计算机学院 31 检查视频图像的尺寸 int width height Dimension size VideoFormat original getSize 获取视频图像的尺寸 Format jpegFmt new Format VideoFormat JPEG RTP Format h263Fmt new Format VideoFormat H263 RTP if supported matches jpegFmt 如果是 JPEG 格式 width size width 8 0 size width int size width 8 8 height size height 8 0 size height int size height 8 8 System out println support jpeg format else if supported matches h263Fmt 如果是 H 263 格式 if size width 128 width 128 height 96 else if size width 176 width 176 height 144 else width 352 级本科毕业论文 计算机学院 32 height 288 System out println support h263 format else 其他格式不与处理 return supported return new VideoFormat null new Dimension width height Format NOT SPECIFIED null Format NOT SPECIFIED intersects supported 返回调整后的视频 格 式 4 6 传输 RTP 实时数据 在 AVTransmit2 类中 利用媒体定位器获取数据源 通过数据源产生一个处理器 通 过处理器获得相应的轨迹 当设定处理器的内容描述为 RAW RTP 时 它将限定每个轨迹 支持的格式仅为合法的 RTP 格式 通过处理器获取的输出数据源 可以为每一个数据流构 造一个 RTP 管理器 分别用本机和目的机的 IP 地址及端口号构造两个会话地址 将它们赋 给 RTP 管理器 就可以顺利的进行 RTP 会话了 主要的负责传输代码如下 private String createTransmitter PushBufferDataSource pbds PushBufferDataSource dataOutput PushBufferStream pbss pbds getStreams rtpMgrs new RTPManager pbss length SessionAddress localAddr destAddr InetAddress ipAddr 级本科毕业论文 计算机学院 33 SendStream sendStream int port SourceDescription srcDesList for int i 0 i pbss length i try rtpMgrs i RTPManager newInstance port portBase 2 i ipAddr InetAddress getByName ipAddress localAddr new SessionAddress InetAddress getLocalHost port destAddr new SessionAddress ipAddr port rtpMgrs i initialize localAddr rtpMgrs i addTarget destAddr System err println Created RTP session ipAddress port sendStream rtpMgrs i createSendStream dataOutput i sendStream start catch Exception e return e getMessage return null 4 7 接收 RTP 实时数据 通过实现 ReceiveStreamListener 接口的 updata 方法实现了对 ReceiveStreamEvent 事件的监听 具体的事件主要有 级本科毕业论文 计算机学院 34 1 NewReceiveStreamEvent 事件 该事件表明会话管理器为刚检测到的数据源产生 了一个新的数据流 2 StreamMappedEvent 事件 该事件表明先前来源不明的接收数据流与一个参与者 联系了起来 即找到了发送者 3 ByeEvent 事件 该事件表示数据流接收结束 public synchronized void update ReceiveStreamEvent evt RTPManager mgr RTPManager evt getSource Participant participant evt getParticipant ReceiveStream stream evt getReceiveStream if evt instanceof RemotePayloadChangeEvent System err println Received an RTP PayloadChangeEvent System err println Sorry cannot handle payload change System exit 0 else if evt instanceof NewReceiveStreamEvent try stream NewReceiveStreamEvent evt getReceiveStream DataSource ds stream getDataSource RTPControl ctl RTPControl ds getControl javax media rtp RTPControl if ctl null System err println Recevied new RTP stream ctl getFormat 级本科毕业论文 计算机学院 35 else System err println Recevied new RTP stream if participant null System err println The sender of this stream had yet to be identified else System err println The stream comes from participant getCNAME Player p javax media Manager createPlayer ds if p null return p addControllerListener this p realize PlayerWindow pw new PlayerWindow p stream playerWindows addElement pw synchronized dataSync dataReceived true dataSync notifyAll catch Exception e System err println NewReceiveStreamEvent exception e getMessage return else if evt instanceof StreamMappedEvent if stream null 级本科毕业论文 计算机学院 36 RTPControl ctl RTPControl ds getControl javax media rtp RTPControl System err println The previously unidentified stream if ctl null System err println ctl getFormat System err println had now been identified as sent by participant getCNAME else if evt instanceof ByeEvent System err println Got bye from participant getCNAME PlayerWindow pw find stream if pw null playerWindows removeElement pw 最终效果如图 4 8 和 4 9 所示 级本科毕业论文 计算机学院 37 图 4 7 文字传输和接收 级本科毕业论文 计算机学院 38 图 4 8 带视频的聊天室 4 8 技术难点及解决方案 4 2 1 Java 中文乱码 1 产生原因 在基于 Java 语言的编程中 我们经常碰到汉字的处理及显示的问题 一大堆看不懂的乱码肯定不是我们愿意看到的显示效果 例如在 4 1 2 中的几段代码中的 u89c6 u9891 u63a5 u6536 等就是本身因该是中文的 视频接收 四字 但是由于乱 码问题 而作了相关处理 下面解释下为什么会出现乱码 汉字是双字节 所谓双字节是指一个汉字要占用两个 BYTE 的位置 即 16 位 分别称 为高位和低位 中国规定的汉字编码为 GB2312 这是强制性的 目前几乎所有的能处理中 文的应用程序都是支持 GB2312 GB2312 包括了一 二级汉字和 9 区符号 高位从 0 xa1 到 0 xfe 低位也是从 0 xa1 到 0 xfe 其中 汉字的编码范围为 0 xb0a1 到 0 xf7fe 级本科毕业论文 计算机学院 39 另外有一种编码叫做 GBK 这是一份规范 不是强制性的 GBK 提供了 20902 个汉字 它兼容 GB2312 编码范围为 0 x8140 到 0 xfefe GBK 中的所有字符都可以一一映射到 Unicode2 0 在实际编程时接触得比较多的是 GB2312 GBK 和 iso8859 1 举例说明 在 GB2312 中有一个汉字 李 其编码为 C0EE 欲转化为 iso8859 1 编 码 步骤为 先把 李 字转化为 Unicode 得到 674E 再把 674E 转化为 iso8859 1 字符 当然这个映射不会成功 因为 iso8859 1 中根本就没有与 674E 对应的字符 当 映射不成功时 问题就发生了 当某语句向 Unicode 转化时 如果在某语言中没有该字符 得到的将是 Unicode 的代码 uffffd u 表示 Unicode 编码 而从 Unicode 向某语 言转化时 如果某语言没有对应的字符 则得到的是 0 x3f 2 解决方法 Java 默认的编码方式为 Unicode 而我们的计算机系统编码常常是和 iso8859 1 和 GBK 等编码 需要将系统的编码转换为 java 正确识别的编码问题就解决了 这就需要用到 JDK 中的 native2ascii 命令 它在安装了 JDK 后位于 JDK 的 BIN 文件目录下 native2ascii 是 sun java sdk 提供的一个工具 用来将别的文本类文件 比如 txt ini properties java 等等 编码转为 Unicode 编码 举一个简单的使用例子 新建一个 1 txt 文件 输入内容 视频接收 运行 native2ascii 1 txt 2 txt 命令 将会在新产生的 2 txt 文件中出现 视频接收 四个 字对应的 Unicode 编码 在程序中需要输入 视
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 第5课 做一次电影市场分析说课稿-2025-2026学年初中信息技术粤高教版2018七年级下册-粤高教版2018
- 2025商业合作合同书范本
- 2025企业违约、强制解雇、裁员均触犯合同法规定
- 2025二手简单装修购房合同书
- 2024-2025学年高中历史 第四单元 王安石变法 第2课 王安石变法的主要内容(2)教学说课稿 新人教版选修1
- 4.2 设计制作用集成电路制作收音机说课稿-2025-2026学年高中物理上海科教版选修2-1-沪教版2007
- 绍兴事业单位笔试真题2025
- 2025【合同范本】建筑材料采购合同范本
- 2025退休人员劳务合同模板
- 2025博骜丽景春天项目商品房销售代理合同
- 地雷战故事解读
- 2025年福建福州地铁集团委托培养生招收160人高频重点提升(共500题)附带答案详解
- 《南京江北新材料科技园总体发展规划 (2021-2035)环境影响报告书》
- 办公楼室内外装修改造工程施工组织设计方案
- 公共行政学史 课件全套 何艳玲 第1-11章 导论:走进公共行政学世界-总结:公共行政学的认识论分野
- 电梯安全管理机构和职责
- Unit 2 Hobbies Welcome to the unit 教案 2024-2025学年译林版英语七年级上册
- 4.3诚实守信 课件-2024-2025学年统编版道德与法治 八年级上册
- (完整)五年级上册生命与安全教案
- 从动态血压监测指南共识看高血压的管理课件
- 02项目一:02我国动车组的主要型号 (1)课件讲解
评论
0/150
提交评论