`

gbk文件转utf-8 Demo

阅读更多
读取gbk编码的文件,并将其转为utf-8编码后输出:

import java.io.File;
import java.io.RandomAccessFile;
import java.io.UnsupportedEncodingException;


public class Test1 {
public static String readTxt(int off,int leng) {
  RandomAccessFile r;
  String str = "";
  try {
   r = new RandomAccessFile(new File("D:/test.txt"), "r");
   byte[] c = new byte[leng];
   r.seek(off);
   r.read(c);
   str = new String(c);
  } catch (Exception e) {
   e.printStackTrace();
  }
  return str;
}
   
  public static byte[] gbk2utf8(String chenese){   
   char c[] = chenese.toCharArray();   
         byte [] fullByte =new byte[3*c.length];   
         for(int i=0; i<c.length; i++){   
          int m = (int)c[i];   
          String word = Integer.toBinaryString(m);                 
          StringBuffer sb = new StringBuffer();   
          int len = 16 - word.length();  
          for(int j=0; j<len; j++){   
           sb.append("0");   
          }   
          sb.append(word);   
          sb.insert(0, "1110");   
          sb.insert(8, "10");   
          sb.insert(16, "10");   
          String s1 = sb.substring(0,8);             
          String s2 = sb.substring(8,16);             
          String s3 = sb.substring(16);   
             
          byte b0 = Integer.valueOf(s1, 2).byteValue();   
          byte b1 = Integer.valueOf(s2, 2).byteValue();   
          byte b2 = Integer.valueOf(s3, 2).byteValue();   
          byte[] bf = new byte[3];   
          bf[0] = b0;   
          fullByte[i*3] = bf[0];   
          bf[1] = b1;   
          fullByte[i*3+1] = bf[1];   
          bf[2] = b2;   
          fullByte[i*3+2] = bf[2];   
             
         }   
         return fullByte;   
  }  

public static void main(String[] args) {
  String str = readTxt(0,731);
 
  byte [] fullByte = gbk2utf8(str);  
  String fullStr = "";
        try {
   fullStr = new String(fullByte, "UTF-8");
  } catch (UnsupportedEncodingException e) {
   e.printStackTrace();
  }  
  System.out.println(fullStr);
}
}

测试文档D:\test.txt内容:
[账号],[日期],[收支种类],[币种],[收入],[支出],[余额],[摘要]

3819660311,2004-2006-01-05,支出,人民币,0,54.20, 6403.89,消费款


中文可以,正确转换
英文乱码
分享到:
评论

相关推荐

    GBK文件夹转化UTF-8 支持文件名

    这个`GBK2UTF8Demo`程序首先遍历源GBK编码的文件夹,对每个非目录文件进行读取、编码转换并写入到目标UTF-8编码的文件夹中。文件的最后修改时间和类型信息也一并被保留。如果是目录,程序会更新目录的名称,将"GBK...

    demo_gbk_2_utf8.zip

    描述中提到的"批量的将gbk文件装utf-8"意味着这个项目或脚本旨在处理多个GBK格式的文件,并一次性将它们转换成UTF-8格式。这通常涉及到文件操作、编码转换和可能的错误处理。"多看 多练习 勤能补拙 笨鸟先飞 蒂花之...

    支付宝源码demo

    |————create_direct_pay_by_user-CSHARP-UTF-8 |————create_direct_pay_by_user-JAVA-GBK |————create_direct_pay_by_user-JAVA-UTF-8 |————create_direct_pay_by_user-PHP-GBK |————...

    ibatis乱码解决方法(ibatis独立)

    - 同时,确保你的项目编码是UTF-8,这通常在IDE(如IntelliJ IDEA或Eclipse)的项目设置中进行配置。 2. **数据库连接配置**: - 在数据库连接URL中指定字符集,例如对于MySQL,可以添加`useUnicode=true&...

    N5城市门户系列-V9商业版-GBK-UTF8

    本人上传的模板仅供参考... 模板目前已发布GBK、UTF-8 2种编码,完美支持Discuz! X3 X3.1 X3.2最新版本; …… 更多精彩欢迎进入演示站体验!NVBING5 四年(2012-2015)专注Discuz!模板开发与设计,万名站长的不二选择!

    另类数据库读写UTF-8易语言源码-易语言

    7. 编码转换:在易语言中,可能需要进行不同编码间的转换,如GBK到UTF-8,以便于与不同编码的系统或软件进行交互。 在"demo.e"这个文件中,我们可以期待看到上述概念的具体实现。通过学习和分析这段源码,开发者...

    查看文件编码格式Demo

    文件编码格式,如ASCII、UTF-8、GBK等,是用来规定字符集和它们在二进制数据流中表示方式的一种标准。不同的编码格式适用于不同的场景,例如,UTF-8是全球通用的编码,支持多种语言,而GBK是中国大陆常用的编码,...

    ECShop V2.7.2 UTF-8 正式版.rar

    [变更] demo数据变更为可独立安装包 [变更] 添加广告页面的错误提示信息 [变更] 邮件模板编辑器改进为html编辑器 [修正] 修正短信功能gbk下发送不了中文内容的问题 [修正] 修正短信功能不能群发没有积分范围的特殊...

    乱码分析以及解决办法.docx

    解决方法包括确保文件以UTF-8编码保存,并在页面头部使用`&lt;meta&gt;`标签指定UTF-8编码,或者在JSP文件中使用`pageEncoding`属性,如`&lt;%@ pageEncoding="utf-8"%&gt;`,在XML文件中声明`&lt;?xml encoding="UTF-8"?...

    Java 解决中文路径问题

    例如,添加`-Dfile.encoding=UTF-8`到JVM启动参数,使得Java默认使用UTF-8编码处理文件路径。 5. 操作系统环境变量: - 在Windows系统中,可以修改系统的区域和语言设置,确保文件路径的默认编码与Java期望的编码...

    JAVA解压缩ZIP压缩文件(含中文名文件)完整DEMO

    为了解决这个问题,我们需要确保使用正确的字符编码,通常是`"GBK"`或`"UTF-8"`。 - 使用`Charset.forName("UTF-8")`设置输入流和输出流的字符编码。 4. **完整DEMO步骤**: 1. 创建`FileInputStream`,传入ZIP...

    解决jsp页面中文乱码问题

    在计算机系统中,字符编码是用来表示文本的规则,如常见的ASCII、GBK和UTF-8等。在Web环境中,HTTP协议和HTML文档都有自己的默认字符编码,而JSP页面作为动态内容生成者,其编码设置更为关键。 1. **JSP页面编码...

    页面往action传中文参数,如何不变成乱码

    字符编码决定了字符在计算机中的表示方式,比如常用的UTF-8、GBK等。在Web应用中,浏览器与服务器之间的通信默认使用UTF-8编码,但这个默认设置可能会因配置而异。当编码不一致时,就会出现乱码。 1. **JSP页面编码...

    J2EE -- 字符编码问题

    常用的字符编码有ASCII、GBK、GB2312、ISO-8859-1、UTF-8等。其中UTF-8是一种可变长度的编码方式,可以支持世界上绝大多数语言的文字表示,并且与ASCII编码兼容,在Web开发中得到了广泛的应用。 #### 二、Servlet...

    AIUI windows demo 操作手册1

    AIUI 的结果编码方式为 UTF-8,用户需要将其转换为 Unicode,然后再转换为 GBK 输出。这个过程可以使用 ::MultiByteToWideChar 和 ::WideCharToMultiByte 函数实现。 代码解读 在 AIUITest.cpp 文件中的第 180 行...

    mybatis乱码的解决方法

    2. **统一项目编码**:在整个项目中,包括IDE、代码文件、资源配置文件等,都应统一使用UTF-8编码,避免因编码不一致引起的问题。 3. **XML配置文件设置**:在MyBatis的主配置文件(mybatis-config.xml)中,可以...

    Activity的跳转方式Demo

    本人在做下载模块的时候,遇到了点击通知栏不响应的问题,所以就顺手写...1. 本Demo使用Utf-8编码,出现乱码,请将编码修改为Utf-8,或将代码文件转为gbk; 2. 本Demo仅演示了四种方式跳转Activity,具体见JumpActivity.java.

    PHP 把字符串转换为数组支持中文

    $encodedStr = iconv("GBK", "UTF-8", $inputStr); // 或者使用 mb_convert_encoding $array = explode(",", $encodedStr); ``` 此外,`str_split()`函数也可用于将字符串转换为字符数组,但不支持自定义分隔符,且...

    cookie_demo4.zip

    常见的编码格式有ASCII、UTF-8、GBK等。如果在设置Cookie时不正确地处理这些编码,中文字符可能会显示为乱码。因此,确保在创建和读取Cookie时统一使用UTF-8编码是必要的,这可以通过在HTTP头信息中指定`Content-...

Global site tag (gtag.js) - Google Analytics