汉字和utf编码转换
package Sambo;public class URLtoUTF8 {//将汉字转换为编码public static String toUtf8String(String s) {StringBuffer sb = new StringBuffer();for (int i = 0; i < s.length(); i++) {char c = s.charAt(i);if (c >= 0 && c <= 255) {sb.append(c);} else {byte[] b;try {b = String.valueOf(c).getBytes("utf-8");} catch (Exception ex) {System.out.println(ex);b = new byte[0];}for (int j = 0; j < b.length; j++) {int k = b[j];if (k < 0)k += 256;sb.append("%" + Integer.toHexString(k).toUpperCase());}}}return sb.toString();}//将编码转换为汉字public static String unescape(String s) {StringBuffer sbuf = new StringBuffer();int l = s.length();int ch = -1;int b, sumb = 0;for (int i = 0, more = -1; i < l; i++) {/* Get next byte b from URL segment s */switch (ch = s.charAt(i)) {case '%':ch = s.charAt(++i);int hb = (Character.isDigit((char) ch) ? ch - '0': 10 + Character.toLowerCase((char) ch) - 'a') & 0xF;ch = s.charAt(++i);int lb = (Character.isDigit((char) ch) ? ch - '0': 10 + Character.toLowerCase((char) ch) - 'a') & 0xF;b = (hb << 4) | lb;break;case '+':b = ' ';break;default:b = ch;}/* Decode byte b as UTF-8, sumb collects incomplete chars */if ((b & 0xc0) == 0x80) { // 10xxxxxx (continuation byte)sumb = (sumb << 6) | (b & 0x3f); // Add 6 bits to sumbif (--more == 0)sbuf.append((char) sumb); // Add char to sbuf} else if ((b & 0x80) == 0x00) { // 0xxxxxxx (yields 7 bits)sbuf.append((char) b); // Store in sbuf} else if ((b & 0xe0) == 0xc0) { // 110xxxxx (yields 5 bits)sumb = b & 0x1f;more = 1; // Expect 1 more byte} else if ((b & 0xf0) == 0xe0) { // 1110xxxx (yields 4 bits)sumb = b & 0x0f;more = 2; // Expect 2 more bytes} else if ((b & 0xf8) == 0xf0) { // 11110xxx (yields 3 bits)sumb = b & 0x07;more = 3; // Expect 3 more bytes} else if ((b & 0xfc) == 0xf8) { // 111110xx (yields 2 bits)sumb = b & 0x03;more = 4; // Expect 4 more bytes} else /* if ((b & 0xfe) == 0xfc) */{ // 1111110x (yields 1 bit)sumb = b & 0x01;more = 5; // Expect 5 more bytes }/* We don't test if the UTF-8 encoding is well-formed */}return sbuf.toString();} }
转载于:https://www.cnblogs.com/SangBigYe/p/3224792.html
汉字和utf编码转换相关推荐
- delphi 汉字的编码 转换
delphi 汉字的编码 转换 2009-10-07 21:57:00| 分类: delphi | 标签: |字号大中小 订阅 ━━━━━━━━━━━━━━━━━━━━━━━━━━ var Str ...
- 汉字转16进制 php,php中文汉字与16进制编码转换三种方法
用php实现中文汉字与16进制间的编码转换. 例1, 复制代码 代码示例: //汉字转换为16进制编码 function hexencode($s) { return preg_replace('/( ...
- 汉字乱码状态下的编码转换将导致的问题
实验工具 notepad++编辑器 实验过程 步骤1:打开notepad++,新建一个文本文件,在其中输入一段汉字文本,查看当前编码格式,如下: 分析:由上图可见,从右下角可知当前文件是以UTF-8解 ...
- php中文汉字与16进制编码转换三种方法
本文介绍了php中文汉字与16进制编码转换的方法,php汉字编码转换的几个例子,有需要的朋友参考下. 用php实现中文汉字与16进制间的编码转换. 例1, <?php //汉字转换为16进制编码 ...
- php文件在线编码转换,gbk编码在线转换_php汉字转码 GBK到Big5编码转换
摘要 腾兴网为您分享:php汉字转码 GBK到Big5编码转换,月星家居,永辉生活,一点开,幸福钱庄等软件知识,以及酷我音乐车机,爱情电影网影音,杜比音效,微信制作宣传广告,dolbyadvanced ...
- html转换编码格式,html编码转换 html编码设置utf gbk编码转换图文教程
html编码转换 html编码设置utf gbk编码转换图文教程篇 常用HTML编码之urf-8编码转换为gb2312编码或者gb2312转换为utf-8编码快速转换设置,这里DIVCSS5介绍使用D ...
- %e5 转换汉字 php,Linux Shell下把汉字转换为Url编码_自学php网
在linux 的shell环境下有一个od命令可以把文件按不同的进制的ascii码输出,该功能可以完成在linux shell下把汉字转换为url编码的任务. url编码是十六进制的形如%E6%9C% ...
- java 将json转成utf 8_C# JSON转换以及编码转换
C# JSON转换以及编码转换 一.C# Json转换 首先需要下载安装Newtonsoft.Json.dll,下载地址 引用后再添加:using Newtonsoft.Json;using Newt ...
- html用unicode编码转换汉字,汉字与Unicode编码相互转换(Js版)
Unicode编码转换工具 //ASCII 转换 Unicode function AsciiToUnicode(){ if (document.getElementById("conten ...
最新文章
- 基于SSH实现的学生成绩管理系统
- springboot:实现分页查询,以及翻页功能
- SharePoint 2010 change home page或者default page
- Linux定制登录欢迎语
- Google上面有自己给你标注好的数据集
- LeetCode 64 最小路径和
- 牛逼!计算机基础知识总结与操作系统 PDF 开放下载了!
- mathematica 8.0.0 激活方法
- 【2018-2019-1】20165223-20165218 实验二 固件程序设计
- linux vim命令,linux之vim命令
- 如何解决缓存与数据库不一致?
- 高并发编程之面试题一
- 统计学权威盘点过去50年最重要的统计学思想,因果推理、bootstrap等上榜
- Java项目 yaml明文密码加密
- Dukto在路由器联互联网的情况下传输文件是否会耗互联网流量?
- html让字数超过多少,css强制省略号 css设置超过多少个字显示省略号
- 四、Flink部署 , job配置与运行
- [文摘20070308]中国历史朝代歌
- 实用技巧 一文解决 echarts 如何设置 legend 展示为虚线?
- uCOS-II 基础入门教程(九)
热门文章
- java 像素级碰撞检测,» 像素级碰撞检测类
- C语言程序设计基础练习题
- java 2d绘图 stroke_Java标准教程:Java 2D绘图--第4章使用Text
- 图书管理系统_目前图书管理系统存在的问题
- 技术系统进化法则包括_技术系统进化论,模式五、技术集成以增加系统功能
- java struts 框架_java中struts 框架的实现
- linux lib目录找不到,linux中jpeglib库文件我安装了,但是我运行自己写的代码总是找不到这个库...
- 如何安装mysql5.7.2_CentOS 7.2 安装MySQL 5.7
- abb限位开关已打开drv1_Telemecanique传感器限位开关产品系列
- C语言变量和数据类型