BIG5转为GBK的类

Big5编码台湾繁体字体和GBK编码简体字体之间相互转换示例代码 自己编写的Big5编码台湾繁体字体和GBK编码简体字体之间相互转换示例代码,亲测可以编译运行。 立即下载
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script> //编码转换类 //本类提供两种转换功能:GBK繁体->GBK简体,Big5->GBK简体 import java.io.*; public class EncodingConvertor { //转换表所在的目录以及文件名 private static final String TABLE_FILE_DIR = "converttable"; private static final String BIG5_TO_GBKSIMP_TABLE_FILE_NAME = "big52gb.tab"; //GBK中非GB2312码的汉字编码范围(即可能需要转换的编码范围,GBK-3区和GBK-4区) //GBK-3区,高字节范围:[0x81, 0xA0];低字节范围:[0x40, 0xFE] private static int GBK3_HIGH_DOWN = 0x81; private static int GBK3_HIGH_UP = 0xA0; private static int GBK3_LOW_DOWN = 0x40; private static int GBK3_LOW_UP = 0xFE; //GBK-4区,高字节范围:[0xAA, 0xFE];低字节范围:[0x40, 0xA0] private static int GBK4_HIGH_DOWN = 0xAA; private static int GBK4_HIGH_UP = 0xFE; private static int GBK4_LOW_DOWN = 0x40; private static int GBK4_LOW_UP = 0xA0; //Big5编码范围,高字节:[0x81, 0xFE],低字节:[0x40, 0xFE] private static int BIG5_HIGH_DOWN = 0x81; private static int BIG5_HIGH_UP = 0xFE; private static int BIG5_LOW_DOWN = 0x40; private static int BIG5_LOW_UP = 0xFE; //是否加载Big5->GBK转换表的Bool值(如果仅仅需要进行GBK繁体->GBK简体的转化,则不必加载Big5->GBK转换表;但Big5->GBK简体转换必须两个表都加载) private boolean ifloadbig5; //存放转换表的数组 //GBK-3区的转换表 private byte gbk3table[][][] = new byte[GBK3_HIGH_UP - GBK3_HIGH_DOWN 1][GBK3_LOW_UP - GBK3_LOW_DOWN 1][2]; //GBK-4区的转换表 private byte gbk4table[][][] = new byte[GBK4_HIGH_UP - GBK4_HIGH_DOWN 1][GBK4_LOW_UP - GBK4_LOW_DOWN 1][2]; //Big5的转换表 private byte big5table[][][] = new byte[BIG5_HIGH_UP - BIG5_HIGH_DOWN 1][BIG5_LOW_UP - BIG5_LOW_DOWN 1][2]; //加载转换表的函数 private void loadConvertTables() { try { DataInputStream dis = new DataInputStream(new FileInputStream(TABLE_FILE_DIR File.separator BIG5_TO_GBKSIMP_TABLE_FILE_NAME)); int i, j; //加载GBK-3区的转换表 for (i = GBK3_HIGH_DOWN; i <= GBK3_HIGH_UP; i ) { for (j = GBK3_LOW_DOWN; j <= GBK3_LOW_UP; j ) { dis.read(gbk3table[i - GBK3_HIGH_DOWN][j - GBK3_LOW_DOWN], 0, 2); } } //加载GBK-4区的转换表 for (i = GBK4_HIGH_DOWN; i <= GBK4_HIGH_UP; i ) { for (j = GBK4_LOW_DOWN; j <= GBK4_LOW_UP; j ) { dis.read(gbk4table[i - GBK4_HIGH_DOWN][j - GBK4_LOW_DOWN], 0, 2); } } dis.close(); if (ifloadbig5) { dis = new DataInputStream(new FileInputStream(TABLE_FILE_DIR File.separator BIG5_TO_GBKSIMP_TABLE_FILE_NAME)); //加载Big5转换表 for (i = BIG5_HIGH_DOWN; i <= BIG5_HIGH_UP; i ) { for (j = BIG5_LOW_DOWN; j <= BIG5_LOW_UP; j ) { dis.read(big5table[i - BIG5_HIGH_DOWN][j - BIG5_LOW_DOWN], 0, 2); } } dis.close(); } else { big5table = null; } } catch (FileNotFoundException fnfe) { fnfe.printStackTrace(); ifloadbig5 = false; } catch (IOException ioe) { ioe.printStackTrace(); ifloadbig5 = false; } } //构造函数,加载转换表 //参数ifbig5指明是否加载Big5->GBK的转换表 //如果仅仅需要进行GBK繁体->GBK简体的转化,则不必加载Big5->GBK转换表;但Big5->GBK简体转换必须两个表都加载 public EncodingConvertor(boolean ifbig5) { ifloadbig5 = ifbig5; loadConvertTables(); } //Big5编码->GBK简体转换的外部调用接口 //参数text[]为待转换的字符串的Big5编码的字节数组,textlen为字节个数 //本函数将text[]中的Big5编码的汉字转换成相应GBK编码的简体字,转换后的结果覆盖原来的数组返回 //不能转换的字符按原值返回 public void big52gbk(byte text[], int textlen) { //如果没有加载Big5转换表,直接返回 if (!ifloadbig5) { return; } int i; int high, low; i = 0; while (i < textlen) { if (text[i] >= 0) { i ; continue; } if ((i 1) >= textlen) { break; } high = text[i]; high = 0x100; low = text[i 1]; if (low < 0) { low = 0x100; } if ((high >= BIG5_HIGH_DOWN) && (high <= BIG5_HIGH_UP) && (low >= BIG5_LOW_DOWN) && (low <= BIG5_LOW_UP)) { text[i] = big5table[high - BIG5_HIGH_DOWN][low - BIG5_LOW_DOWN][0]; text[i 1] = big5table[high - BIG5_HIGH_DOWN][low - BIG5_LOW_DOWN][1]; } i = 2; } } public String big52gbk(byte text[]) { //如果没有加载Big5转换表,直接返回 if (!ifloadbig5) { return ""; } int i; int high, low; i = 0; while (i < text.length) { if (text[i] >= 0) { i ; continue; } if ((i 1) >= text.length) { break; } high = text[i]; high = 0x100; low = text[i 1]; if (low < 0) { low = 0x100; } if ((high >= BIG5_HIGH_DOWN) && (high <= BIG5_HIGH_UP) && (low >= BIG5_LOW_DOWN) && (low <= BIG5_LOW_UP)) { text[i] = big5table[high - BIG5_HIGH_DOWN][low - BIG5_LOW_DOWN][0]; text[i 1] = big5table[high - BIG5_HIGH_DOWN][low - BIG5_LOW_DOWN][1]; } i = 2; } return new String(text,0,text.length); } }
Big5码 转 GBK 内码 Big5码 转 GBK 内码 VC工程 程序 立即下载

相关推荐

Eclipse在Mac上报错JNI_CreateJavaVM?可能是你的JDK架构搞错了(附Adoptium JDK下载指南)

本文深入解析了Mac(尤其是Apple Silicon芯片)上Eclipse启动时出现“JNI_CreateJavaVM”错误的根本原因,即JDK架构(aarch64与x86_64)不匹配。文章提供了详细的诊断步骤,并推荐通过下载并配置Eclipse Adoptium提供的aarch64版本JDK来彻底解决问题,同时附上清晰的配置指南。

weixin_29065659的博客 321

判断文件编码

package com.billows.util; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStr

an74520的专栏 1918

CAD的.dwg文件导入 ArcGIS:高程分析、坡度分析、坡向分析

CAD的.dwg文件导入 ArcGIS,再进行高程分析、坡度分析、坡向分析。

My_Echo_yM的博客 7240

各个字符编码之间的关系

我们常见的编码格式有ASCII码,GBK,Unicode, UTF-8,现在我们来说说他们之间的关系,首先最先出现的是ASCII码表,他是占一个字节的,是一套标准的信息交换表。 GBK是国标,它的出现是为了方便使用中文的我们, GBK 向下与 GB 2312 编码兼容,向上支持 ISO 10646.1国际标准,是前者向后者过渡过程中的一个承上启下的产物。ISO 10646 是国际标准化组织 ISO...

pyswt的博客 2719

Ubuntu Server 24.04 安装 (超详细)

本文介绍最小化安装 Ubuntu Server的详细过程。

炀炀的专栏 1万+

2025数学建模国赛A题1-4问详解(论文+完整代码)

本文介绍了数学建模国赛A题的解题思路,重点分析了三维遮蔽模型的建立和运动学代码实现。相比第一题,第二题增加了未知参数求解,需要采用遗传算法等非线性优化方法。文章强调该模型由专业团队原创开发,代码可运行,并提醒参赛者警惕市场上的保奖班现象。整体内容聚焦于竞赛解题技巧和原创性保证。

Eloveeeee的博客 2803

利用VBA在WORD在GBK字符集中进行繁简转换——非BIG5转成GB2312

公司需要开发一套ASP.NET的繁体版本程序。我们的机器都是简体的,当时为了方便就直接用了“微软拼音输入法”输入繁体,然后在web.config里设置globalization节为utf-8,这样我们就可以在简体机器里开发“繁体”的程序了,当然这时候这些繁体字符集的编码就不是BIG5了,但是,没有问题,用户看到的界面是繁体的就可以了。后来,有另外一个部门也要用这样的程序不过要求必须转为简体版本,[...

weixin_30906425的博客 588

在Keil uv5里面添加STC元器件库,不影响其他元件

先到网上下载stc.CBD(宏晶网站的地址实效了)还有STC新系列单片机的头文件,宏晶的网站就有1、在Keil/C51/INC下新建目录"STC"文件夹, 把所有STC新系列单片机的头文件拷贝到"STC"目录下。2、下载的用于keil下的STC器件数据库更名为STC.CDB并拷贝到Keil/UV4目录下。3、打开Keil文件夹下的TOOLS.ini文件。4、在[UV2]下键入CDB0="UV2\S

技术联盟 1万+

VB中的GBK编码

Option Explicit Function FormatNameToMac(val As String) As String Dim i As Integer Dim str As String str = "" For i = 1 To Len(val) If CLng("&h" & Hex(Asc(Mid(val, i, 1))))

rztyfx的专栏 2597

详解Linux下使用vscode编译运行和调试C/C++

本教程将具体详解使用Visual Studio Code在Linux环境下使用C/C++方法。 GCC C++ 编译器 (g++) 和 GDB 调试器的方法。 GCC是GNU 编译器集合; GDB 是 GNU 调试器。 1.先决条件 安装Visual Studio Code. 安装C++拓展插件。点击在vscode界面最左侧的Extensions图标(打开快捷键:ctrl+shift+X),搜索“C/C++”,点击进行安装。 确保已安装gcc. 一般ubuntu系统会预装gcc.在终端窗口中输入如下命令

休的博客 6243

全志T527-TP9930-Camera

TP9930 驱动模块主要实现将 4 路的 AHD/TVI/CVBS Camera 的数据转换为 BT656/BT1120 数据,从而实现在 T527 端来对数据进行处理和送显。

Linux驱动开发工程师,熟悉Linux/Android底层驱动、TP、显示、IIC、网络等通用外设调试适配,Linux上层应用开发。常用平台瑞芯微、全志、恩智浦等。 3245

我所了解的GB2312、Unicode、GBK、UTF-8、BIG5等编码

小编一直对文字编码感到模糊,在学习、编程等过程中也经常会遇到与之相关的问题,无奈只能问百度。于是,为解决这一问题,小编花了一些时日了解和学习这些编码,整理出了这些编码的“性格特点”,“兴趣爱好”等等(文章中可能不全面,接受建议)。 有关文章参见:趣谈unicode,ansi,utf-8,unicode big endian这些编码有什么区别。 在这之前,我得先提一下ASCII码(American ...

Yangchenju的博客 1万+

基于深度学习YOLOv5的草莓成熟度检测系统详解(深度学习模型+UI界面+Python代码+训练数据集)

数据采集与预处理模块:负责收集草莓图像,并进行数据增强和标注。深度学习模型训练模块:使用YOLOv5模型进行草莓成熟度检测模型的训练。模型推理模块:加载训练好的模型,对输入图像或视频进行草莓成熟度检测。UI界面模块:提供用户交互界面,方便用户上传图像或视频进行成熟度检测。本文详细介绍了基于YOLOv5的草莓成熟度检测系统的构建过程,包括数据集的构建、模型的训练与推理、以及UI界面的设计。通过本文的指导,读者可以快速搭建一个高效的草莓成熟度检测系统,并应用于实际场景中。

斌擎科技 526

使用iconv进行GBK到BIG5编码转/简繁转换遇到的问题

Linux操作系统中的iconv命令/函数可以将一种已知的字符集文件转换成另一种已知的字符集文件。 在使用它进行GBK到BIG5的编码转换时,遇到"iconv:illeagal input sequence at positon xx ”的错误。 有个一个文本文件gbk.txt,只有四个汉字,内容如下: 喜欢德芙 使用下面的命令,在shell中进行转换  iconv -f gbk -t

镇关西拳打鲁智深 7035

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

字符编码发展史3 — GB2312/Big5/GBK/GB18030

GB2312是中国国家标准总局发布的一种用于中文信息交换的字符编码标准,全称为《信息交换用汉字编码字符集·基本集》。它于1981年5月1日实施,标准号为,所以你看到的GB2312-80GB2312指的都是同一个东西,只不过有多个不同的叫法。GB2312中的“GB”为“国标”的汉语拼音首字母缩写,即“国家标准”之意,GB2312是早期在计算机中处理简体中文的重要标准,后被GBK和GB18030替代。GB2312主要收录了简体中文字符,共收录6763个汉字,其中一级汉字3755个,二级汉字3008个。

阳光日志 2303

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

delphi 编码转换 unicode gbk big5

http://parad1se.bokee.com/6250501.html delphi 编码转换 unicode gbk big5 以下代码在DELPHI 7上调试通过,主要使用了api函数中MultiByteToWidechar function UnicodeEncode(Str:string;CodePage:integer):WideString;

l799623787的专栏 4049

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

GB2312、GBK、Big5汉字编码

由于常常要和汉字处理打交道,因此,我常常受到汉字编码问题的困扰。在不断的打击与坚持中,也积累了一点汉字编码方面的经验,想和大家一起分享。 一、汉字编码的种类     汉字编码中现在主要用到的有三类,包括GBK,GB2312和Big5。     1、GB2312又称国标码,由国家标准总局发布,1981年5月1日实施,通行于大陆。新加坡等地也使用此编码。它是一个简化字的编码规范,当然也包括其他的

zhoubl668的专栏:远帆,梦之帆! 3277

ASCII、GB2312、GBK、GB18030、Unicode、UTF-8、BIG5 编码分析

“锟斤拷,烫烫烫烫烫~~~~” ASCII、gb2312、gbk、utf-8、Unicode编码详解

小清华的小哥哥 8916

汉字编码-GB2312-GBK-GB18030-Big5

汉字编码-GB2312、GBK、GB18030、Big5.

第七宇林的博客 8020

BIG5编码, GB编码(GB2312, GBK, ...), Unicode编码, UTF8, WideChar, MultiByte, Char 说明与区别

一. BIG5编码, GB编码(GB2312, GBK, ...), Unicode编码 1.1. BIG5编码 BIG5字集是台湾繁体字集,共包括国标繁体汉字13053个 1.2. GB编码 GB2312字集是简体字集, 全称为GB2312(80)字集, 共包括国标简体汉字6763个; GB2312是中国规定的汉字编码, 也可以说是简体中文的字符集编码; GBK包含全部中文字

cay22的专栏 1万+

GBK、Shift-JIS、BIG5编码检测算法

GBK、Shift-JIS、BIG5编码检测算法 字符串的编码检测需要使用自定义的映射表,使用系统自带的Codepage是不大可能有准确率的,系统Codepage会将它所有没定义的字符映射为空格。 GBK、Shift-JIS、BIG5的码表空间都是不连贯的,而它们的有效空间也不完全重合,这为检测编码类型提供了可能性。 检测算法: 1、建立字符映射表:将任一ANSI编码的所有字符

LongZh_CN的专栏 7701

big5转gbk php,php的汉字转换GBK-Big5_PHP教程

php的汉字转换一直是比较麻烦的事首先要说两点:1.GBK的繁体字并不是Big5,但一般繁体字都有对应的Big码2.一GBK码并不一定有对应的Big5码,所以一般是不可逆转换该类内置了三个函数qswhStr 格式化字符串qswhFile 格式化一文件qswhDir 格式化目录下所有文件(.qswh的除外,那是原先文档的备份)qswhBig5.php 从这里下载http://www.blueidea...

weixin_35943077的博客 363

简体中文GBK/繁体中文Big5的Codepage

如何制作简体中文GBK/繁体中文Big5的Codepage?  从 Unicode 组织取得GBK/Big5的Unicode的定义.由于GBK是基于ISO 10646-1:1993标准的,而相应的日文是JIS X 0221-1995,韩文是KS C 5700-1995,他们被提交到Unicode标准的时间表为:Unicode Version 1.0Unicode Version 1

twosecond 2448

big5字符 转 gbk_GBK 编码

GBK编码范围:8140-FEFE,汉字编码范围见第二节:码位分配及顺序。GBK编码,是对GB2312编码的扩展,因此完全兼容GB2312-80标准。GBK编码依然采用双字节编码方案,其编码范围:8140-FEFE,剔除xx7F码位,共23940个码位。共收录汉字和图形符号21886个,其中汉字(包括部首和构件)21003个,图形符号883个。GBK编码支持国际标准ISO/IEC10646-1和国...

weixin_33564130的博客 427

简中繁中互相转换gbk big5

如何通过程序自动转换简中到繁中呢

nwao7890的专栏 2380
上一篇: Weblogic的几个安全隐患
下一篇: 学习Lucene的一点心得
java169
博客等级 码龄19年 27粉丝 2568原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值