gbk

Print a list that contains Chinese characters in Python

这一生的挚爱 提交于 2019-11-29 10:53:27
My code looks like : # -*- coding: utf-8 -*- print ["asdf", "中文"] print ["中文"] print "中文" The output in the Eclipse console is very strange: ['asdf', '\xe4\xb8\xad\xe6\x96\x87'] ['\xe4\xb8\xad\xe6\x96\x87'] 中文 My first question is: why did the last line get the correct output, and the others didn't? And my second question is: how do I correct the wrong ones (to make them output real characters instead of the code that begins with "x") ? Thank you guys!! why did the last line get the correct output, and the others didn't? When you print foo , what gets printed out is str(foo) . However, if foo

有关Java字符编码的一些问题

梦想与她 提交于 2019-11-29 09:27:31
Java字符编码根本原理 一、 由于JDK是国际版的,在对程序进行编译的时候,如果我们没有用-encoding参数指定我们的Java源程序的编码格式, 则javac.exe首先获得我们操作系统默认采用的编码格式, 即:在编译.java文件时,若我们不指定源程序文件的编码格式,JDK首先获得操作系统的file.encoding参数(它保存的就是操作系统默认的编码格式,如果是WIN2k,则它的值为GBK)。然后JDK就把我们的Java源程序从file.encoding编码格式,转化为Java内部默认的Unicode编码格式放入 内存 中。然后,javac.exe把转换后的Unicode编码格式的文件进行编译,使之成 .class 类文件,此时的.class文件是Unicode编码的,它暂放在内存中。紧接着,JDK将此以Unicode编码的编译后的.class文件保存到我们的操作系统中,形成我们见到的.class文件。对我们来说,我们最终获得的.class文件是内容以Unicode编码格式保存的类文件,它内部包含我们源程序中的 中文字符串 ,只不过此时它已经由file.encoding格式转化为Unicode格式了。 当我们不加设置就对程序进行编译时,相当于使用了参数:javac -encoding gbk XX.java,当然就会出现不兼容的情况。 由于JDK是国际版的

Ubuntu Rhythmbox中文乱码解决

瘦欲@ 提交于 2019-11-29 08:05:24
Rhythmbox Music Player是ubuntu自带的一款音乐播放器,功能还算比较强大,使用也简单。唯一的缺点就是中文显示乱码,原因是由于编码不同所致。 在这里介绍一个解决方法,修改变量。 在终端输入: vi ~/.profile 在最后加入下面内容: export GST_ID3_TAG_ENCODING=GBK:UTF-8:GB18030 export GST_ID3V2_TAG_ENCODING=GBK:UTF-8:GB18030 保存退出。 source ~.profile 重启Rhythmbox把歌曲重新导入即可显示正确。此方法在Ubuntu 10.04可行,其他版本应该问题也不大。 来源: oschina 链接: https://my.oschina.net/u/134883/blog/61494

io流--转换流,缓冲流

主宰稳场 提交于 2019-11-29 06:17:58
功能: 转换吗?转换流。InputStreamReader OutputStreamWriter 高效吗?缓冲区对象。BufferedXXX unicode:国际标准码表:无论是什么文字,都用两个字节存储。 l Java中的char类型用的就是这个码表。char c = 'a';占两个字节。 l Java中的字符串是按照系统默认码表来解析的。简体中文版 字符串默认的码表是GBK。 UTF-8:基于unicode,一个字节就可以存储数据,不要用两个字节存储,而且这个码表更加的标准化,在每一个字节头加入了编码信息(后期到api中查找)。 能识别中文的码表:GBK、UTF-8;正因为识别中文码表不唯一,涉及到了编码解码问题。 对于我们开发而言;常见的编码 GBK UTF-8 ISO-8859-1 文字--->(数字) :编码。“abc”.getBytes() byte[] (数字)--->文字 : 解码。 byte[] b={97,98,99} new String(b,0,len) 转化流 OutputStreamWriter 是字符流通向字节流的桥梁:可使用指定的字符编码表,将要写入流中的字符编码成字节,将字符串按照指定的编码表转成字节,在使用字节流将这些字节写出去 其实在OutputStreamWriter流中维护自己的缓冲区

解决GBK字符转UTF-8乱码问题

亡梦爱人 提交于 2019-11-29 05:53:01
gbk转utf-8,奇数中文乱码。 一、乱码的原因 gbk的中文编码是一个汉字用【2】个字节表示,例如汉字“内部”的gbk编码16进制的显示为c4 da b2 bf utf-8的中文编码是一个汉字用【3】个字节表示,例如汉字“内部”的utf-8编码16进制的显示为e5 86 85 e9 83 a8 很显然,gbk是无法直接转换成utf-8,少字节变为多字节 二、转换的办法 1.首先将gbk字符串getBytes()得到两个原始字节,转换成二进制字符流,共16位。 2.根据UTF-8的汉字编码规则,首字节以1110开头,次字节以10开头,第3字节以10开头。在原始的2进制字符串中插入标志位。最终的长度从16--->16+3+2+2=24。 3.转换完成 通过以下方法将GBK字符转成UTF-8编码格式的byte【】数组 package test; import java.io.UnsupportedEncodingException; public class TestEncoder { /** * @param args */ public static void main(String[] args) throws Exception { String gbk = "iteye问答频道编码转换问题"; String iso = new String(gbk.getBytes(

漫话:如何给女朋友解释什么是\"锟斤拷\"?

随声附和 提交于 2019-11-29 03:51:37
漫话:如何给女朋友解释什么是"锟斤拷"? ​ 周末女朋友出去逛街了,我自己一个人在家看综艺节目,突然,女朋友给我打来电话。 过了一会,女朋友回来了,她拿出手机,给我看了她在超市拍的照片:  要想知道什么是乱码,需要先从计算机编码说起。 字符编码和ASCII 我们经常看一些谍战剧,谍战剧里敌特、地下党员以及八路军各部间发送情报的时候,一般都是通过电报发送的,电报在传递的过程中,需要发报员用电键发出长短不一的电码,收报员就会听到电报机发出的滴滴滴答答答的声音。其实电报发出的声音都是"滴"和"答"的组合,"答"的声音是"滴"的三倍长。 发报员要先通过一种方式,将想要发送的情报转成电报的滴答声,收报员在听到滴答声之后,再将它们翻译成正常的文字。这个过程就是字符编码和字符解码。 谍战剧中将情报转成电报的"滴"和"答"声主要通过 摩尔斯电码 ,这是一种通过不同的排列顺序来表达不同的英文字母、数字和标点符号的字符编码方式。莫尔斯电码由短的和长的电脉冲(称为点和划)所组成。点和划的时间长度都有规定,以一点为一个基本单位,一划等于三个点的长度。正好对应上电报的"滴"和"答"。 就像电报只能发出"滴"和"答"声一样,计算机只认识0和1两种字符,但是,人类的文字是多种多样的,如何把人类的文字转换成计算机认识的01字符呢,这个过程同样需要通过字符编码。 字符编码(Character encoding

JSP中request.getParameter()乱码问题

二次信任 提交于 2019-11-29 00:44:43
【转】JSP中request.getParameter()乱码问题 博客分类: java中的字符编码 第一,存文件必须以一种编码存;读文件也必须以一种编码读,如不特别设置,去系统默认的编码,中文windows为GBK编码。 从.java->.class过程是,先编写.java文件并按莫种编码方式保存,然后用javac方法编译此文件,注意如.java没按系统默认编码保存则要带encoding参数指明实际编码,否则出错,生成的.class文件存为系统默认编码。 从.jsp->.java->.class,先存为某种编码的.jsp文件,然后tomcat根据pageEncoding读取并转化为servlet存为系统默认编码,然后同上面.java->.class过程。 第二,IDE的encoding为对系统下文件打开的解码方式或保存的编码方式。特例:如果.jsp文件有<%@ page language="java" pageEncoding="UTF-8"%>,则eclipse会自动存为UTF-8方式,不管eclipse的encoding是什么,这也是eclipse的聪明之处。 第三, pageEncoding="UTF-8"表示此文件的编码方式,必须与此文件存储方式一致(所以eclipse会首选根据它来存文件),tomcat根据这个来读此.jsp文件并编译为servlet。

linux下音乐播放软件

与世无争的帅哥 提交于 2019-11-28 23:36:54
  虽然说大家用linux一般是工作,但工作累了总要休息吧,听听音乐还是不错的。   linux 下有很多免费的好用的音乐播放客户端,我用的系统是Ubuntu12.04LTS ,默认的播放器是Rhythmbox.个人感觉还不错,   如果没有安装,可以用“sudo apt-get install rhythmbox”来进行安装 ,官方说是用于gnome桌面,不知其他的桌面系统是否可用 。   初次使用会下载一些解码器,用于对音频格式解码,所以第一次使用时最好是联网使用,下载完解码器后就可以正常使用了。   使用说明:   因为是图形界面,而且用法也简单,就不多介绍了,介绍一些特别的实用技巧。   ctrl+d  :在大小窗口模式切换   ctrl+L  :如果启用默认的歌词插件,可以显示歌词   默认没有单曲重复功能,可以在开启“控制”-“重复”的前提下,把歌曲名复制到Rhythmbox的搜索框内实现单曲重复   插件:   Rhythmbox自带了部分插件,但用户还可以使用第三方或自己制作插件。   插件有两个位置,手动安装请放在:   ~/.gnome2/rhythmbox/plugins/   默认安装的插件在:   /usr/lib/rhythmbox/plugins/   安装鲁班歌词插件:    1 sudo apt-get install python-gconf

一图看懂py2/py3编码

試著忘記壹切 提交于 2019-11-28 18:49:38
无论是py2还是py3,都使用unicode作为内存编码,简称内码。保存在python解释器内存中的文本,输出到屏幕、编辑器,或者保存成文件的时候,都要将内码转换成utf8或者gbk等编码格式;同样,python解释器从输入设备接收文本,或者从文件读取文本的时候,都要将utf8或者gbk等编码转换成unicode编码格式。因此,无论是py2还是py3,想要在unicode、utf8、gbk等编码格式之间转换的话,下图是通用的: 我们之所以会产生困惑,是因为py2和py3给这些编码格式指定了令人困惑的名字。py2的字符串有两种类型:unicode类型和str类型。py2的unicode类型就是unicode编码,py2的str类型泛指除unicode编码之外的所有编码,包括ascii编码、utf8编码、gbk编码、cp936编码等。py3的字符串也有两种类型:bytes类型和str类型。py3的str类型就是unicode编码,py3的bytes类型泛指除unicode编码之外的所有编码,包括ascii编码、utf8编码、gbk编码、cp936编码等。同样是str类型,在py2和py3中完全颠倒了!下图稍微补充了一点内容,更有助于理解编码问题。 接下来,我们实战演练一下。 >> > s = 'abc天圆地方' >> > type ( s ) < class 'str' > >> >