• Java又乱码了,怎么办;乱码了说明编码与解码不一致导致。所以使用统一的编码方式即可。
  • 本文并不是一定能解决乱码,本文主要用来了解jvm默认编码,以及string编码与解码一致性问题。
  1. jvm的默认编码

     System.out.println(System.getProperty("file.encoding"));
    // Eclipse的console:UTF-8

    file.encoding 属性由主程序启动时的是否设置默认编码有关,这会涉及【java -D 配置系统属性】。
    即若启动程序使用了 -Dfile.encoding=UTF-8,则执行获取jvm默认编码则为utf-8,若启动没有设置
    该参数,则file.encoding 属性就与操作系统的默认编码方式一致。
    1.1 通过eclipse执行得到 utf-8,这是由于eclipse在执行程序时,会自动加入-Dfile.encoding参数。
    1.2 直接使用终端直接执行java 启动执行main打印将会是OS的默认编码。

  2. string编码与解码

     byte[] sources = "欢迎进入程序员世界!".getBytes();
    System.out.println(new String(sources, "utf-8"));
    // console:欢迎进入程序员世界!

    getBytes() 无参方法是用jvm默认编码进行得到字节数组,若jvm默认编码也是utf-8 ,则不会乱码。

  3. 问题来了,若是得到一个byte[] ,没有对应的解码说明,如何对其进行编码显示。
    这个问题我是没解决,但是可以在代码中避免这个问题。

java的String的乱码浅析的更多相关文章

  1. Java中String和byte[]间的转换浅析

    Java语言中字符串类型和字节数组类型相互之间的转换经常发生,网上的分析及代码也比较多,本文将分析总结常规的byte[]和String间的转换以及十六进制String和byte[]间相互转换的原理及实 ...

  2. Java中String和byte[]间的 转换浅析

    Java语言中字符串类型和字节数组类型相互之间的转换经常发生,网上的分析及代码也比较多,本文将分析总结常规的byte[]和String间的转换以及十六进制String和byte[]间相互转换的原理及实 ...

  3. NDK(14)Native的char*和Java的String相互转换

    转自: http://www.cnblogs.com/canphp/archive/2012/11/13/2768937.html 首先确保C/C++源文件的字符编码是UTF-8与JAVA的class ...

  4. setLocale(java.util.Locale), setCharacterEncoding(java.lang.String),setContentType(java.lang.String type)

    对于setCharacterEncoding(java.lang.String),这个方法是javax.servlet.ServletRequest和javax.servlet.ServletResp ...

  5. AndroidStudio开发Java工程(解决java控制台中文打印乱码+导入jar包运行工程)

    这篇分享一点个人AS开发java工程经验,虽然有时候还是得打开eclipse来运行java项目,但能用AS的时候还是尽量用AS,毕竟一个字,爽~ 废话不多说,进入正题. 一.开发Java工程 你有两种 ...

  6. 转:Java中String与byte[]的转换

    原文地址:http://blog.csdn.net/llwan/article/details/7567906 String s = "fs123fdsa";//String变量 ...

  7. String 源码浅析————终结篇

    写在前面 说说这几天看源码的感受吧,其实 jdk 中的源码设计是最值得进阶学习的地方.我们在对 api 较为熟悉之后,完全可以去尝试阅读一些 jdk 源码,打开 jdk 源码后,如果你英文能力稍微过得 ...

  8. Java 中 String 的构造方法

    String 对于所有 Java 程序员来说都不会陌生,几乎每天甚至每个程序都会和 String 打交道,因此将 String 的常用知识汇集在此,方便查阅. 概叙: Java 中是如此定义 Stri ...

  9. JAVA的中文字符乱码问题

    来源:http://luzefengoo.blog.163.com/blog/static/1403593882012754428536/ JAVA的中文字符乱码问题一直很让人头疼.特别是在WEB应用 ...

随机推荐

  1. test pthread code

    #include <iostream> #include <pthread.h> using namespace std; ; void * add(void *); pthr ...

  2. 二十二. Python基础(22)--继承

    二十二. Python基础(22)--继承 ● 知识框架   ● 继承关系中self的指向 当一个对象调用一个方法时,这个方法的self形参会指向这个对象 class A:     def get(s ...

  3. like contains

    like :   %/%  = *****/**** contains:     abc    = 字符串中含有  abc

  4. Qml和C++开发的学生信息管理软件一

    一个月前接触到了Qml,也做过一些练习,但只能实现动画和简单的布局功能,逻辑部分和数据处理很难上手,看到许多人将C++和结合起来,Qml负责界面设计,C++实现逻辑处理,但将C++注册到 Qml中一直 ...

  5. TensorFlow占位符操作:tf.placeholder_with_default

    tf.placeholder_with_default 函数 placeholder_with_default( input, shape, name=None ) 请参阅指南:输入和读取器>占 ...

  6. ios 中pickerView城市选择和UIDatePicker生日选择

    代码详见压缩包

  7. aps.net国际化本地资源 .resources”正确嵌入或链接到程序集

    asp.net国际化提供了资源文件的解决的方式, asp.net自带的两个项目文件夹 分别是:App_GlobalResources和App_LocalResources, App_GlobalRes ...

  8. 蓝牙协议分析(6)_BLE地址类型

    1. 前言 也许关注BLE的同学都注意到了,BLE设备有多种类型的设备地址,如Public Device Address.Random Device Address.Static Device Add ...

  9. 【oracle入门】Oracle数据库11g企业版主要优点

    高可靠性.能够尽可能地放置服务器故障.站点故障和人为错误的发生. 高安全信息.可以利用行级安全性.细粒度审计.透明的数据加密和数据的全面会议确保数据安全和遵守法规. 更好的数据管理.轻松管理最大型数据 ...

  10. ItelliJ idea tomcat 配置

    用ItelliJ idea 开发javaWeb. 1. Idea 安装Tomcat 打开Idea,选择设置,并在设置中左边框中选择 Application Servers 点击中间空白框上面的 ’+‘ ...