我们前面知道同一个字符在利用不同的编码表得到的结果一般是不一样的。

这里讨论个字符串的编码和解码问题

字符串的一些方法:

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] 编码结果完全相同,还可以多次测试知道,默认编码是GBK
byte[] 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类的编码和解码问题的更多相关文章

  1. C# Socket编程(3)编码和解码

    在网络通信中,很多情况下:比如说QQ聊天,通讯双方直接传递的都是字符信息.但是字符信息并不能够直接通过网络传输,这些字符集必须先转换成一个字节序列后才能够在网络中传输,于是这里就产生了编码和解码的概念 ...

  2. String类的一些转换功能(6)

    1:把字符串转换成字节数组 getBytes() 如: String s = "你好啊!" //编码 byte [] arr = s.getBytes();//这里默认编码格式是g ...

  3. 【转】python 字符编码与解码——unicode、str和中文:UnicodeDecodeError: 'ascii' codec can't decode

    原文网址:http://blog.csdn.net/trochiluses/article/details/16825269 摘要:在进行python脚本的编写时,如果我们用python来处理网页数据 ...

  4. 【转】C# Socket编程(3)编码和解码

    [转自:https://www.cnblogs.com/IPrograming/archive/2012/10/13/CSharp_Socket_3.html] 在网络通信中,很多情况下:比如说QQ聊 ...

  5. Day 19:Properties配置文件类、打印流(printStream) 、 编码与解码

    Properties(配置文件类): 主要用于生产配置文件与读取配置文件的信息. Properties要注意的细节:  1. 如果配置文件的信息一旦使用了中文,那么在使用store方法生成配置文件的时 ...

  6. Android 中的编码与解码

    前言:今天遇到一个问题,一个用户在登录的时候,出现登录失败.但是其他用户登录都是正常的,经过调试发现登录失败的用户的密码中有两个特殊字符: * .#  . 特殊符号在提交表单的时候,出现了编码不一样的 ...

  7. android Java BASE64编码和解码二:图片的编码和解码

    1.准备工作 (1)在项目中集成 Base64 代码,集成方法见第一篇博文:android Java BASE64编码和解码一:基础 (2)添加 ImgHelper 工具类 package com.a ...

  8. [SAP ABAP开发技术总结]字符编码与解码、Unicode

    声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...

  9. iOS URL中汉字的编码和解码

    发现NSString类中有内置的方法可以实现.他们分别是: - (NSString *)stringByAddingPercentEscapesUsingEncoding:(NSStringEncod ...

随机推荐

  1. Linux查看端口占用情况,并强制释放占用的端口

    1.查找被占用的端口 netstat -tln netstat -tln | grep 8080 netstat -tln 查看端口使用情况,而netstat -tln | grep 8080则是只查 ...

  2. JS知识点简单总结

    JS(JavaScript) 是一种解释性语言 是弱/动态 最开始用于表单验证的 JS的五个部分: 1.核心语言定义 2.原生对象和内置对象 5boolean 3.BOM 4.DOM 5.事件处理模型 ...

  3. 对于JVM中方法区,永久代,元空间以及字符串常量池的迁移和string.intern方法

    在Java虚拟机(以下简称JVM)中,类包含其对应的元数据,比如类的层级信息,方法数据和方法信息(如字节码,栈和变量大小),运行时常量池,已确定的符号引用和虚方法表. 在过去(当自定义类加载器使用不普 ...

  4. ThinkPHP 调用后台方法

    <a href="__URL__/del/id/{$vo['id']}">删除</a>

  5. libevent库介绍--事件和数据缓冲

    首先在学习libevent库的使用前,我们还要从基本的了解开始,已经熟悉了epoll以及reactor,然后从event_base学习,依次学习事件event.数据缓冲Bufferevent和数据封装 ...

  6. python爬虫之新浪微博登录

    fiddler 之前了解了一些常见到的反爬措施,JS加密算是比较困难,而微博的登录中正是用JS加密来反爬,今天来了解一下. 分析过程 首先我们去抓包,从登录到微博首页加载出来的过程.我们重点关注一下登 ...

  7. React Native区分安卓/iOS平台

    import { Platform, } from 'react-native'; alert(JSON.stringify(Platform)): android手机弹出:{"OS&quo ...

  8. hibernate关联非主键注解配置

    现在有两张表:一张t_s_user用户表和t_s_user_serial_number用户序号表 CREATE TABLE `t_s_user` ( `id` ) NOT NULL, `email` ...

  9. Vue2.0 + ElementUI的+ PageHelper实现的表格分页

    参考博客:http://blog.csdn.net/u012907049/article/details/70237457 借鉴1.controller层编写 2.vue中,axios的写法(总页数等 ...

  10. html-常用块级及行级标签

    1.常见块级标签   <h1></h1>......<h6></h6>:标题标签 h标签:标题标签,自动加粗,h1最大,h6最小 例:(前后隔一行)   ...