技术标签: java
在中文机器下分别创建三个文本文件,分别为:
打开文本文件之后分别如下:
前两者出现了乱码问题:
使用另存为文件时会发现,前两种文本使用的编码方式为UTF-8,后一种为ANSI编码(中文机器下代表gbk编码)
联、联通 保存时采用的编码方式为UTF-8,而中文机器下在文本编辑器中输入的文本只有ANSI编码格式才能正常显示
注:文本编辑器是可以识别任何编码方式的,如果在其他地方新建一个utf-8编码的文本文件,粘贴到机器上的某个位置,如桌面。。打开后不会出现乱码。在新建文本文件时直接编辑文本,若文本内容不是ANSI编码,就会出现乱码。
对于JAVA语言中编码方式的使用方式如下:
public static void main(String[] arg) throws Exception {
String s = "慕课网ABC";
// 转换成字节序列用的是项目默认的编码方式(该项目默认为 utf-8)
byte[] bytes1 = s.getBytes();
//utf-8编码中文占3个字节,编码英文占1个字节
for (byte b : bytes1) {
// 把字节转换成了int,以16进制的方式显示
System.out.print(Integer.toHexString(b & 0xff) + " ");
}
System.out.print("\n");
//把字符串按指定格式的编码(gbk)转换成字节
byte[] bytes2 = s.getBytes("gbk");
//gbk编码中文占两个字节,英文占1个字节
for(byte b : bytes2) {
//把字节转换成了int,以16进制方式显示
System.out.print(Integer.toHexString(b & 0xff) + " ");
}
System.out.print("\n");
//java是双字节编码 utf-16be
byte[] bytes3 = s.getBytes("utf-16be");
//utf-be 中文占用2个字节,英文占用2个字节
for(byte b : bytes3) {
System.out.print((b & 0xff) + " ");
}
System.out.print("\n");
/*
* 当你的字节序列是某种编码时,这个时候想把字节序列转换
* 成字符串时,也需要用这种编码方式,否则会出现乱码
*/
//不指定编码方式时,用项目默认的编码(当前为utf-8)
//因为bytes3编码方式为utf-16be,故会出现乱码
String str1 = new String(bytes3);
System.out.println(str1);
//改为如下形式就不会有乱码
String str2 = new String(bytes3, "utf-16be");
System.out.println(str2);
//相应的bytes1的编码方式 是默认的编码方式(utf-8)
String str3 = new String(bytes1);
String str4 = new String(bytes1, "utf-8");
System.out.println(str3 + " " + str4);
//bytes2的编码方式为gbk
String str5 = new String(bytes2, "gbk");
System.out.print(str5);
/*
* 文本文件 就是字节序列
* 可以是任意编码的字节序列
* 如果我们在中文机器上直接创建文本文件
* 那么该文本文件只认识ansi编码
* 中文系统下ansi编码代表gbk编码
* 文本文件可以识别任意类型的文本文件,若把文件拷贝到机器上则不会出现乱码
* 联通、联这是一种巧合,他们正好符合了utf-8编码的规则。
*<strong><span style="color:#ff6666;"> eclipse编辑器中的每个项目都有自己的编码方式
* 该项目设置为什么编码方式,则该项目中的文本文件必须为该编码方式
* 否则会出现乱码
* 若另外的编码方式文本内容拷贝到该项目的文本文件中,则不会出现乱码
* 因为,编辑器会自动转换成对应的编码方式显示</span></strong>
*
*/
}
eclipse中查看一个项目的文本编码方式:
右键该项目-----〉选择 Properties(属性) -----〉进入到如下界面:
可以看到被框住的部分:Text file encoding 第一行为项目默认的编码方式,可以通过第二项修改编码方式,然后,
一次Apply ---> Ok
即可修改或查看编码方式了。
遮罩:整个mask 黑色一点的图片在UI上面,不需要特别指定这个遮罩image的位置,通过设定orderLayer的方法让这个image的层级最高即可高亮:找到那个按钮,给那个按钮添加Canvas,GraphicRaycaster,设置OverrideSorting,然后设置个比mask 更大的layer就行了。...
原文地址:http://www.infoq.com/cn/articles/linux-networking-performance-analytics本文介绍基于Linux操作系统的网络性能分析工具。它们的使用策略参见前面的部分。本节介绍的工具列于下表中。LinuxSolaris描述netstatnetsta
网站在此:https://1111.segmentfault.com/ Part1: 查看源代码,发现a标签的颜色和背景色一样,导致了我们看不到a过关地址,方法很简单,直接复制源代码中的key即可,或者ctrl+a然后单击进入下一关即可 Part2:查看源代码,发现key:b88........,填入表单,然后回车即可过关。Part3:浏览器F12中NE...
本文介绍在Ubuntu20.04下, VSCode中如何设置对 HC32L110 进行 debug
转自:http://blog.csdn.net/sodino/article/details/7704084同样,先上效果图如下:效果图中,抛物线的动画即是由SurfaceView实现的。底部栏中的文字翻转详情相关帖子:[Android] 文字翻转动画的实现需求:1.实现抛物线动画 1.1 设计物理模型,能够根据时间变量计算出某个时刻图片的X/Y坐标。
驱动字库芯片GT23L24M0140本文博客链接:http://blog.csdn.net/jdh99,作者:jdh,转载请注明.环境:主机:WIN8开发环境:MDK5.13mcu: stm32f407VGIGH6字库芯片:GT23L24M0140源代码:drv_font.h/***********************************************************
企业经常会有需要上syslog系统这里介绍一下如何配置CentOS是rsyslog默认情况是有安装1、检查下系统是否已安装rpm -qa | grep rsyslogrsyslogd -v#若没有安装可以使用以下命令安装yuminstall rsyslog2、配置rsyslog守护进程为客户端vim/etc/rsyslog.conf#在底部添加(这里IP地址写你的syslog服务器端的IP地址,端口记得火墙放行这个是服务器端的端口)注意@前面是一个tab*.*...
时间戳:时间戳是自 1970 年 1 月 1 日(00:00:00 GMT)至当前时间的总秒数既然是秒数,那么在js中换成时间日期格式就不是什么难事了。将时间戳转换成日期格式: function transDate(merStr) { var n = merStr; var date = new
<br />本人有很多华东交大计算机软件专业的课程设计。
17.12.2B组总结T1比较奇怪的一道题,考试时打了个三循的两维DP,只勉强跑过了50分(数据太水)。 然而事实告诉我们,我的第一维,完全可以省略,于是我又过了60分。 但是我猛然发现,正解居然要打斜率优化,我推了近半小时,仍未推出。怒弃。。。好吧,还是不可能的,我又推了半天,终于推出正解(长征般的痛苦)。 过程太过艰苦,在此不详说。 总之最后斜率就是这么个东西:function pd1
USB扫码枪为即插即用,通过类似键盘的方式和系统进行交互,在MFC中进行处理比较方便,对键盘消息进行处理即可。(1)文本框输入获取焦点,扫描后自动显示在文本框内。(2)在PreTranslateMessage中对消息进行处理获取扫码数据。使用第二种方式对接收到的一个个键盘数值的处理。我的扫码枪设置后扫码的情况举例如下:(1)在大写字母前发送shift的虚拟码16(2)第二功...
1.查看http请求2.复制、保存和重放http请求3.fiddler命令4.session状态5.设置断点6.模拟http请求7.流模式