String类的编码和解码问题
我们前面知道同一个字符在利用不同的编码表得到的结果一般是不一样的。
这里讨论个字符串的编码和解码问题
字符串的一些方法:
String(byte[] b,Charset charset);
String(byte[] b,int offset,int length,Charset charset);
byte[] getBytes(String charsetName)
什么是编码解码?
编码:把看得懂的变成看不懂的
解码:把看不懂的变成看得懂的
编码问题只要编码解码使用的而编码表是一致的就即可解决
一个小例子:谍战片(发电报,接电报)
码表: 小本子
数值 字符
信息:
今天下午2:00,老地方见
发电报: 字符---数值----二进制 电报机101010...
收电报: 二进制----十进制---码表----字符-----拼接成信息
windows的默认编码是本地编码是GBK
package com.StringTransform;import java.io.UnsupportedEncodingException; import java.util.Arrays;public class StringTransformDemo {public static void main(String[] args) throws UnsupportedEncodingException {String s="你好"; // byte[] b=s.getBytes();//[-60, -29, -70, -61] 编码 2个字节代表一个中文 // byte[] b=s.getBytes("GBK");//[-60, -29, -70, -61] 编码结果完全相同,还可以多次测试知道,默认编码是GBKbyte[] b=s.getBytes("utf-8");//[-28, -67, -96, -27, -91, -67] utf-8一般将中文变成3个字节表示一个中文 System.out.println(Arrays.toString(b)); // String message=new String(b);//解码 使用GBK编码的时候直接解码也成功,所以默认解码方式也是GBK 直接解码utf-8出现浣犲ソString message=new String(b,"utf-8"); //使用对应的编码表解码发现就能得到想要的信息 System.out.println(message);}}
String类的编码和解码问题相关推荐
- URL编码和解码 C++类URL编码和解码使用技巧
想了解C++类URL编码和解码使用技巧的相关内容吗,在本文为您仔细讲解URL编码和解码的相关知识和一些Code实例,欢迎阅读和指正,我们先划重点:URL编码,解码,下面大家一起来学习吧. 在项目开发过 ...
- 字符串工具类、数组工具类、集合工具类、转型操作工具类、编码与解码操作工具类...
package hjp.smart4j.framework.util;import org.apache.commons.lang3.StringUtils;/*** 字符串工具类*/ public ...
- 如何对 string 进行Base64编码,解码?
咨询区 Kevin Driedger: 如何将指定的 string 编码成 base64. 如何将 base64 解码成 string. 回答区 andrew.fox: 我来分享下对这个问题的处理吧: ...
- Java(35):Java Base64编码和解码工具类
Java Base64编码和解码工具类 Base64Util工具类: package com.ciphergateway.utils; import java.io.UnsupportedEncodi ...
- 【转】python 字符编码与解码——unicode、str和中文:UnicodeDecodeError: 'ascii' codec can't decode...
原文网址:http://blog.csdn.net/trochiluses/article/details/16825269 摘要:在进行python脚本的编写时,如果我们用python来处理网页数据 ...
- C# Socket编程(3)编码和解码
在网络通信中,很多情况下:比如说QQ聊天,通讯双方直接传递的都是字符信息.但是字符信息并不能够直接通过网络传输,这些字符集必须先转换成一个字节序列后才能够在网络中传输,于是这里就产生了编码和解码的概念 ...
- Java常用接口与类——String类、StringBuffer类、StringBuilder类
>String的构造方式 //这两种方式字符串的值是相同的,但在内存中的地址不同: //s1是在常量池中,常量池中有一个hello,同一常量只会放入一次: String s1="hel ...
- Java实现Base64编码和解码的方式
Base64 编码是什么? Base64 是一种编码的方式, 并不是安全领域的加密解密算法. Base64 的目的是把一些二进制符转成普通字符, 方便在网络上传输. 因为有些系统只能使用ASCII字符 ...
- 宽字符编码和解码通用类[CodeWidthChartUtility]
在做jsonp传递的时候遇到一个问题,当有特殊字符或中文的时候就会导致数据错误或者是乱码,刚开始有js的编码和解码和正则,都比较麻烦,现在找到了一种合适的解决方案,宽字符编码,js端会自动解析,能处理 ...
- 基于flash AS3.0 的BASE64编码与解码类
代码Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--& ...
最新文章
- 分析Booking的150种机器学习模型,我总结了六条成功经验
- redis 经纬度_原来用Redis实现查找附近的人这么容易
- WPF:数据绑定--PropertyChangeNotification属性更改通知
- 在共享DLL中使用MFC 和在静态库中使用MFC的区别
- ESFramework介绍之(21)-- Tcp组件接口ITcp介绍
- Linux shell控制台改变显示前缀
- vscode无法识别constexpr
- Linq 使用skip和take分页
- python--创建excel文档
- Python技巧——list comprehension 与 functools.reduce
- python3,进程间的通信
- java虚拟机的heap监狱_JVM垃圾回收--垃圾收集器总结
- 【漫画】兔子,胡萝卜和屎
- Oracle数据库恢复删除数据的方法
- 武汉坚守第三十二天——鱼菜价格已超高,病死猪肉现武汉
- 用什么c语言语句直接跳出if,C语言中怎样跳出if语句
- powershell get-date计算指定日期及格式化
- 上半年要完成的博客51
- LINUX TC介绍
- 关于波特率与字节传输速率计算
热门文章
- pythotn基础篇——条件分支与循环--1
- Python 必备要点总结及环境搭建(上)
- php单引号中变量,php中单引号双引号那点事---顺便说说把php变量的值传给js
- python---pass和continue和break和exit()区别
- java autointeger_【Java多线程】线程安全的Integer,AutomicInteger
- java历save_日历【savejava吧】_百度贴吧
- 自定义按键连发工具_微软 PowerToys 增强工具,提升Win10 效率利器
- matlab替换矩阵中元素的值,怎么修改矩阵中的某些元素 或者简单点说保留矩阵中的元素...
- 计算机专业基础 -- C++相关与MFC基础知识
- mysql检查约束字母_SQL中用check约束一列的首字母为's'