java中String编码转换 UTF-8转GBK

摘要:
1.GB2312等都可以用GBK代替.2.newString(row.getBytes("GB2312"),"UTF8")这种写法是不对的,中文仍然会乱码.方案:解决GBK字符转UTF-8乱码问题:https://www.cnblogs.com/xijin-wu/p/5884822.html彻底搞懂编码GBK和UTF8:https://www.cnblogs.com/hehheai/p/65108
1.GB2312等都可以用GBK代替.
2.new String(row.getBytes("GB2312"), "UTF8") 这种写法是不对的, 中文仍然会乱码.
方案:
解决GBK字符转UTF-8乱码问题: https://www.cnblogs.com/xijin-wu/p/5884822.html

彻底搞懂编码 GBK 和 UTF8:https://www.cnblogs.com/hehheai/p/6510879.html


/*** GBK转UTF-8
     * @paramgbkStr
     * @return
     */
    public static byte[] getUTF8BytesFromGBKString(String gbkStr) {
        int n =gbkStr.length();
        byte[] utfBytes = new byte[3 *n];
        int k = 0;
        for (int i = 0; i < n; i++) {
            int m =gbkStr.charAt(i);
            if (m < 128 && m >= 0) {
                utfBytes[k++] = (byte) m;
                continue;
            }
            utfBytes[k++] = (byte) (0xe0 | (m >> 12));
            utfBytes[k++] = (byte) (0x80 | ((m >> 6) & 0x3f));
            utfBytes[k++] = (byte) (0x80 | (m & 0x3f));
        }
        if (k <utfBytes.length) {
            byte[] tmp = new byte[k];
            System.arraycopy(utfBytes, 0, tmp, 0, k);
            returntmp;
        }
        returnutfBytes;
    }

免责声明:文章转载自《java中String编码转换 UTF-8转GBK》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇编译安装squid3.1亲测springboot任务之异步任务下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

使用java防止非法请求

1.过滤器 public class ImgFilter implementsFilter { @Override public void init(FilterConfig filterConfig) throwsServletException { System.out.println("过滤器开始!!!");...

[SoapUI] Java转换各种日期格式

date为原始日期,orignalFormat为原始日期格式,expectedFormat为预期日期格式 def convertDate(String date, String originalFormat, String expectedFormat){ SimpleDateFormat dateFormat1 = newSimpleDa...

【转】宽字节注入详解

前言在mysql中,用于转义的函数有addslashes,mysql_real_escape_string,mysql_escape_string等,还有一种情况是magic_quote_gpc,不过高版本的PHP将去除这个特性。 首先,宽字节注入与HTML页面编码是无关的,笔者曾经看到 &lt;meta charset=utf8&gt;...

java注解反射简单实例

1、创建一个注解 packagecom.anno; importjava.lang.annotation.ElementType; importjava.lang.annotation.Retention; importjava.lang.annotation.RetentionPolicy; importjava.lang.annotation.Tar...

widget 常用UI控件介绍

    一、单选框 单选框实例程序:<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="fill_pa...

IDEA使用switch传入String编译不通过

今天在使用IDEA的时候,用到switch分支语句,传入String参数的时候一直报错,下面是源码报错截图: 看错误提示并没有提到switch支持String类型,不过ava1.7之后就支持String类型才对呀,于是想到了会不会是JDK问题,但是JDK用的是1.8呀!网上搜索才发现,会不会是编译环境版本过低的原因呢?于是查看对IDEA的ProjectS...