`

转utf-8

 
阅读更多
public static String toUtf8String(String src)
    {
       byte[] b = src.getBytes();
       char[] c = new char[b.length];
       for(int i=0;i<b.length;i++)
       {
        c[i] = (char)(b[i]&0x00FF);
       }
       return new String(c);
    }

在centos上导出文件一直乱码。

原来就没出现这问题,适了好多种方法。

最后把导出的编码设成gbk竟然好了。现在还不知其原因,如有高手还请赐教。



java代码编码utf-8,

jsp编码utf-8,

centos中i18n:utf-8,

tomcat:uriencoding utf-8.







public static String toUtf8String(String src)
    {
       byte[] b = src.getBytes();
       char[] c = new char[b.length];
       for(int i=0;i<b.length;i++)
       {
        c[i] = (char)(b[i]&0x00FF);
       }
       return new String(c);
    }





对于UTF-8编码格式的文本文件,其前3个字节的值就是-17、-69、-65,所以,判定是否是UTF-8编码格式的代码片段如下

   测试文件编码是否为UTF-8

     File file = new File(path);

     InputStream ios = new java.io.FileInputStream(file);

    te[] b = new byte;

     ios.read(b);

     ios.close();

     if (b[0] == -17 && b[1] == -69 && b == -65)

       System.out.println(file.getName() + “:编码为UTF-8″);

     else

       System.out.println(file.getName() + “:可能是GBK,也可能是其他编码。”);





   public static void downloadFile(HttpServletRequest request,
            HttpServletResponse response, String fileName)
    {
        if (StringUtils.isEmpty(fileName))
        {
            return;
        }

        //导出文件路径
        String filePath = PlatformConfig.getUseDataPath() + Constants.EXPORT_PATH + fileName;
       
        // 处理中文名称,需要编码
        response.setContentType("application/octet-stream; CHARSET=GBK");
       
        InputStream inputStream = null;
        OutputStream outputStream = null;
        try
        {
            response.setHeader("Content-Disposition", "attachment; filename="
              + EncodingUtil.getString(fileName.getBytes("gbk"),
        "ISO8859-1"));
            inputStream = new FileInputStream(filePath);
            outputStream = response.getOutputStream();
           
            transferFile(inputStream, outputStream);
        }
        catch (FileNotFoundException e)
        {
            logger.error(e.toString());
        }
        catch (IOException e)
        {
            logger.error(e.toString());
        }
        finally
        {
            try
            {
                if (inputStream != null)
                {
                    inputStream.close();
                }
            }
            catch (Exception e)
            {
                logger.error(e.toString());
            }
            try
            {
                if (outputStream != null)
                {
                    outputStream.close();
                }
            }
            catch (Exception e)
            {
                logger.error(e.toString());
            }
           
            //删除临时导出文件
            FileTools.delFile(filePath);
        }
    }

分享到:
评论

相关推荐

    批量转 GBK 转 UTF-8 gb2312 Iso-8959-1 转 UTF-8

    在标题和描述中提到的“批量转 GBK 转 UTF-8”、“gb2312 转 UTF-8”以及“Iso-8859-1 转 UTF-8”是指将使用这些编码格式的文件转换成UTF-8编码。这是因为UTF-8具有广泛的兼容性和通用性,许多系统和软件默认使用UTF...

    PB9转换utf-8例子

    标题中的“PB9转换utf-8例子”指的是在PowerBuilder 9(PB9)环境下将数据从非UTF-8编码转换为UTF-8编码的一种解决方案。由于PB9本身不直接支持这种转换,开发者通常需要利用外部库或者特定的编程技巧来实现这个功能...

    Txt批量转UTF-8的工具

    本文将详细讨论“TXT批量转UTF-8的工具”这一主题,解释TXT文本文件的ANSI格式和UTF-8格式之间的差异,并介绍如何使用批处理脚本来实现转换。 首先,我们来理解TXT文件的两种编码格式:ANSI和UTF-8。 1. ANSI编码...

    pb12 gb转utf-8

    标题中的“pb12 gb转utf-8”指的是在编程领域中进行的一种字符编码转换操作。PB12可能是指PowerBuilder 12,一个流行的Windows应用程序开发工具,而GB和UTF-8则涉及到字符编码标准。 GB(通常指的是GBK或GB2312)是...

    lvgl unicode 转 utf-8小工具

    lvgl unicode 转 utf-8小工具

    GB2312转UTF-8(C代码)

    GB2312和UTF-8是两种不同的字符编码标准,它们各自有其特点和适用范围。本资源提供了一个C语言实现的GB2312到UTF-8的转换函数,方便开发者在需要进行这种编码转换时使用。 GB2312是中国大陆早期广泛使用的简体中文...

    gb2312转utf-8

    本文将深入探讨"gb2312转utf-8"这一主题,以及与之相关的技术细节。 GB2312,全称《信息交换用汉字编码字符集·基本集》,是中国大陆在1980年制定的一种汉字编码标准。它采用了双字节编码方式,能够表示6763个常用...

    批量文件编码转换工具(Utf-8转GB2312、GB2312转Utf-8)

    本文将深入探讨批量文件编码转换工具,特别是“Utf-8转GB2312”与“GB2312转Utf-8”的转换过程,以及如何利用此类工具进行高效操作。 标题中的“批量文件编码转换工具”是指一种能够一次性处理大量文件,改变它们...

    gbk网页模板转utf-8的绿色小工具

    标题“gbk网页模板转utf-8的绿色小工具”所涉及的知识点主要在于网页模板的字符编码转换。GBK到UTF-8的转换通常是为了使网页在全球范围内具有更好的兼容性和显示一致性,因为UTF-8被更多浏览器和服务器支持,尤其是...

    C#写的 GBK GB2312 UTF-8转换

    Console.WriteLine("GBK转UTF-8后的字符串:" + utf8Str); } } ``` 在这个例子中,`Encoding.GetEncoding("GBK")`获取了GBK编码器,`GetBytes()`方法将GBK编码的字符串转换为字节数组,然后`Encoding.UTF8....

    VB GB2312 转UTF-8的函数.zip

    本资料包"VB GB2312 转UTF-8的函数.zip"提供了将GB2312编码转换为UTF-8编码的函数,这对于处理多语言或者历史遗留的GB2312编码的文本数据尤为关键。 GB2312(中国国家标准简体中文字符集)是一种针对中文的双字节...

    Java 所有字符串转UTF-8 万能工具类-GetEncode.java

    不需要关心接受的字符串编码是UTF_8还是GBK,还是ios-8859-1,自动转换为utf-8编码格式,无需判断字符串原有编码,用法://处理编码String newStr = GetEncode.transcode(oldStr);

    项目编码修改, GBK 变UTF-8 , 全格式转UTF-8, 编码转utf-8

    请使用这款软件,直接将代码转换为UTF-8 注意: 1、xml不需要转换,因为xml默认是utf-8,在你新建的时候已经是正确的格式了 2、图片更不需要转换 3、bin目录,gen目录的直接忽略 4.只需要src目录的代码转换,请确保...

    国际化字符转码器 unicode 转 utf-8 utf-8 转 unicode

    unicode -&gt; utf-8 utf-8 -&gt; unicode 国际化必备工具

    c++ UTF-8 UTF-16转换

    在编程领域,尤其是在涉及到字符编码的时候,理解和操作UTF-8和UTF-16之间的转换是一项基本技能。UTF-8和UTF-16是两种广泛使用的Unicode编码格式,它们各自有其特性和应用场景。本文将深入探讨如何利用C++来实现这两...

    GBK、UTF-8编码转换工具

    GBK、UTF-8批量文件3秒快速转码工具(支持GBK,UTF-8免费转换),UTF-8/GBK编码在线转换工具,压缩包可以有多目录与文件,如目录中有图片不会转码,但是会随转码好的文件一起打包下载。 使用帮助 . 上传压缩包(仅支持zip...

    ANSII文件转UTF-8

    ANSI和UTF-8是两种常见的字符编码标准,它们各自有着不同的特性和应用场景。本篇文章将深入探讨如何将ANSII格式的文件转换为UTF-8格式,以及这个过程的重要性。 首先,我们需要理解ANSII和UTF-8之间的区别。ANSII...

    转码工具gbk转utf-8,支持批量

    本篇文章将详细解析这两种编码方式以及如何进行转换,特别是针对“转码工具gbk转utf-8,支持批量”这一主题。 首先,GBK(Great Chinese Coding)是一种中文扩展的编码标准,它是GB2312的升级版,包含了更多的汉字...

    gb2312与utf-8转换

    从提供的文件列表来看,"GB2312转UTF-8编码 互转工具.exe" 就是一个用于进行编码转换的实用程序。这类工具通常会提供简单的界面,用户只需选择需要转换的文件,然后指定目标编码格式,即可完成转换。"Readme-说明....

    UTF-8toGBK_labview编码gbk_LabVIEWUTF-8_utf-8toGbk_

    UTF-8的优势在于对ASCII字符集的兼容性,前128个Unicode字符(包括英文、数字和常见符号)只需要一个字节表示,这使得UTF-8在互联网上广泛使用,因为其与ASCII的兼容性可以减少传输数据量。此外,UTF-8也支持全球大...

Global site tag (gtag.js) - Google Analytics