gbk编码

js对中文进行gb2312/gbk编码解码

孤人 提交于 2020-03-03 18:04:16
JavaScript使用的是Unicode编码,使用内置的encodeURIComponent,encodeURI,escape都是编码为Unicode的url编码,如果传递这些编码到gb2312或者gbk编码的页面就会乱码。 下面是用js中实现GBK/gb2312编码。适合使用js进行页面参数传递时,给GBK/gb2312编码页面传递参数,解决乱码。 点击下载: js对中文进行gb2312/gbk编码类库 下载上面的压缩文件解压得到gbk.js文件,倒入gbk.js类库,调用$URL.encode将内容编码为gb2312字符串,调用decode解码gb2312 url编码为对应内容。 < script type = "text/javascript" src = "/demo/gbk.js" > < / script > < script > var s = '%D6%D0%B9%FA' ; //中国的gb312编码 alert ( s ) ; s = $ URL . decode ( s ) ; alert ( s ) ; s = $ URL . encode ( s ) ; alert ( s ) ; < / script > 来源: CSDN 作者: haohao7118 链接: https://blog.csdn.net/haohao7118/article

eclipse默认编码为GBK,修改为UTF8的方法

我怕爱的太早我们不能终老 提交于 2020-03-02 14:03:06
eclipse 默认编码居然是GBK,js文件默认编码是ISO-.... 怎么可以这样呢? 都修改成UTF8的方法: 1、windows->Preferences...打开"首选项"对话框,左侧导航树,导航到general->Workspace,右侧 Text file encoding,选择Other,改变为UTF-8,以后新建立工程其属性对话框中的Text file encoding即为UTF-8。 2、windows->Preferences...打开"首选项"对话框,左侧导航树,导航到general->Content Types,右侧Context Types树,点开Text,选择Java Source File,在下面的Default encoding输入框中输入UTF-8,点Update,则设置Java文件编码为UTF-8。其他java应用开发相关的文件如:properties、XML等已经由Eclipse缺省指定,分别为ISO8859-1,UTF-8,如开发中确需改变编码格式则可以在此指定。 3、经过上述两步,新建java文件即为UTF-8编码,Eclipse编译、运行、调试都没问题,但是做RCP应用的Product输出时、或者插件输出时,则总是出错,要么不能编译通过(输出时要重新compile)、要么输出的插件运行时中文显示乱码。此时需要再RCP应用

UnicodeEncodeError: 'gbk' codec can't encode character '\\xa0' in position 46:illegal multibyte sequence

只谈情不闲聊 提交于 2020-03-01 19:19:22
一、 最近使用python写入文件时,出现了如下的错误: 但是content的内容是unicode编码,不知道怎么和gbk扯上了关系,对content使用encode()和decode(),用gbk,utf-8,gb2312各种编码解码都没有效果; 在网上查找资料,看到一篇文章关于这个的说法: http://blog.csdn.net/xiaoyi_zhang/article/details/51675099 结论是: 1.‘gbk’ codec can’t encode character :说明是将Unicode字符编码为GBK时候出现了问题,可能是本身Unicode类型的字符中,包含了一些无法转换为GBK编码的一些字符; 2. gbk无法转换'\xa0'字符,所以在转换前需要将“\xa0”替换掉;使用string.replace(u '\xa0', u ' '); 我在上述代码中使用: self.file.write(content.replace(u'\xa0', u'')) 结果有效,没有报错; 另外一种方法,在gbk解码时忽略掉不能解码的数据: self.file.write(content.encode("gbk", 'ignore').decode("gbk", "ignore")) 但是总觉得这种方法是在回避问题,后来突发灵感,这是在文件写入的时候报的错误

转换流InputStreamReader & OutputStreamWriter

最后都变了- 提交于 2020-02-22 03:50:42
转换流InputStreamReader & OutputStreamWriter 比如当使用FileReader读取文件时,可以读取IDE默认的UTF-8编码的文件,但是当有一个文件是GBK文件时,使用FileReader读取文件会出现乱码,因此需要转换流,将编码格式进行转换。 转换流原理: 比如GBK是使用2个字节存储一个中文,而UTF-8使用3个字节存储一个中文文字。文件字符输入流FileRead读取文件时,事实上是调用了文件字节输入流FileInputStream,FileReader在读取文件时会按照IDE的默认编码表UTF-8去解码,当文件本来就是按照UTF-8编码的时候,解码就当然不会出现问题;但是当文件本来是按照GBK编码时,编码解码的方式不一样就会出现乱码。但是当使用转换流 InputStreamReader & OutputStreamWriter 读取和写入文件而不是FileReader或者FileWriter时,这两个流可以指定编码解码方式,这就可以避免出现乱码现象。 1、OutputStreamWriter java.util.OutputStreamWriter extends Writer 方法 作用 void write(int c) 写入单个字符 void write(char[] cbuf) 写入字符数组 abstract void write

sqli-宽字节注入

*爱你&永不变心* 提交于 2020-02-18 00:03:15
0x0 背景 当某字符的大小为一个字节时,称其字符为窄字节. 当某字符的大小为两个字节时,称其字符为宽字节. 所有英文默认占一个字节,汉字占两个字节 常见的宽字节编码:GB2312,GBK,GB18030,BIG5,Shift_JIS等等 0x1 宽字节注入原理 程序员为了防止sql注入,对用户输入中的单引号(’)进行处理,在单引号前加上斜杠(\)进行转义,这样被处理后的sql语句中,单引号不再具有‘作用’,仅仅是‘内容’而已,换句话说,这个单引号无法发挥和前后单引号闭合的作用,仅仅成为‘内容‘ 【再举个例子,要找某位名字里带单引号的用户,搜索的时候,就要让单引号成为内容去搜索,而不能起到其他作用】 而安全测试人员要绕过这个转义处理,使单引号发挥作用,有两个思路: 让斜杠(\)失去作用 让斜杠(\)消失 第一个思路就是借鉴程序员的防范思路,对斜杠(\)转义,使其失去转义单引号的作用,成为‘内容’ 第二个思路就是宽字节注入 当使用宽字节编码,如:GBK时,两个连在一起的字符会被认为是汉字,我们可以在单引号前加一个字符,使其和斜杠(\)组合被认为成汉字,从未达到让斜杠消失的目的,进而使单引号发挥作用 注意:前一个字符的Ascii要大于128,两个字符才能组合成汉字 0x2 注入方法 0x21 黑盒 可以看到,在发现单引号被转义后,当我们加了%df后,sql语句报错,说明单引号发挥了作用

python3字符串编码转换

人盡茶涼 提交于 2020-02-16 00:07:08
编码转换: 1、将文本已以二进制方式读取出来; 2、将读取的二进制文本已改文本的编码方式进行解码成Unicode 3、然后将解码后的Unicode编码成要转换的编码格式。 例:将utf-8转换成gbk模式 流程图:(例) utf-8------>unicode------>gbk 代码(例) f = open("oldFile.txt", "rb") # 以二进制方式打开 s = f.read() # 读取打开的文本 f.close() s_unicode = s.decode("utf-8") # 转换成Unicode s_gbk = s_unicode.encode("gbk") # Unicode转换成gbk模式 f = open("oldFile.txt", "wb") #以二进制方式创建 f.write(s_gbk) # 写入 f.close() 来源: https://www.cnblogs.com/lanlao/p/12315375.html

Python中使用中文

馋奶兔 提交于 2020-02-14 23:12:14
python的中文问题一直是困扰新手的头疼问题, 这篇文章将给你详细地讲解一下这方面的知识。当然, 几乎可以确定的是,在将来的版本中, python会彻底解决此问题,不用我们这么麻烦了。 先来看看python的版本: >>> import sys >>> sys.version '2.5.1 (r251:54863, Apr 18 2007, 08:51:08) [MSC v.1310 32 bit (Intel)]' (一) 用记事本创建一个文件ChineseTest.py, 默认ANSI: s = "中文" print s 测试一下瞧瞧: E:/Project/Python/Test>python ChineseTest.py File "ChineseTest.py", line 1 SyntaxError: Non-ASCII character '/xd6' in file ChineseTest.py on line 1, but no encoding declared; see http://www.pytho n.org/peps/pep-0263.html for details 偷偷地把文件编码改成UTF-8: E:/Project/Python/Test>python ChineseTest.py File "ChineseTest.py", line 1

基础数据类型补充以及编码的进阶

一笑奈何 提交于 2020-02-10 01:57:58
python 基础数据类型补充以及编码的进阶 一. 基础数据类型补充内容 1.1 字符串 字符串咱们之前已经讲了一些非常重要的方法,剩下还有一些方法虽然不是那么重要,但是也算是比较常用,在此给大家在补充一些,需要大家尽量记住。 #captalize :首字母大写        #swapcase :大小写翻转        #title   :每个单词的首字母大写 #center    :内同居中,总长度,空白处填充 #寻找字符串中的元素是否存在       #find     :返回的找到的元素的索引,如果找不到返回-1 #index     :返回的找到的元素的索引,找不到报错。 #captalize,swapcase,title print(name.capitalize()) #首字母大写 print(name.swapcase()) #大小写翻转 msg='taibai say hi' print(msg.title()) #每个单词的首字母大写 # 内同居中,总长度,空白处填充 ret2 = a1.center(20,"*") print(ret2) #寻找字符串中的元素是否存在 # ret6 = a4.find("fjdk",1,6) # print(ret6) # 返回的找到的元素的索引,如果找不到返回-1 # ret61 = a4.index("fjdk",4,6

UnicodeEncodeError: 'gbk' codec can't encode character '\xbb' in position 30380: illegal multibyte

烈酒焚心 提交于 2020-02-04 07:19:23
UnicodeEncodeError: ‘gbk’ codec can’t encode character ‘\xbb’ in position 30380: illegal multibyte sequence 错误出现的解决办法 UnicodeEncodeError: 'gbk' codec can't encode character '\xbb' in position 30380: illegal multibyte sequence 如图: 重新导入编码格式 import io import sys sys.stdout = io.TextIOWrapper(sys.stdout.buffer,encoding='gb18030') #改变标准输出的默认编码 此处用encoding=‘gb18030’,因为encoding='utf-8’会产生中文乱码 1.UTF-8:即国际通用字符编码,该编码方式囊括了世界各个国家及地区使用的字符集,尤其是对于英文字母的表示方法仅占用一个字节,很好的支持了欧美等国家的需要。优点:为了统一世界上各种编码而设计,通用性强。缺点:为了兼顾世界所有语言的字符,必须采用多位给字符编号,例如中文字符采用3字节编码方式,而gb18030采用2字节。 2.gb18030:是新出的国家标准。这个标准由国家强制执行(也是为了保证中国信息业的地位

Qt 编码问题QTextCodec

醉酒当歌 提交于 2020-02-03 16:31:31
一般在Window开发环境里,是GBK编码,在Linux开发环境里,是utf-8编码,关于编码的定义, 我就不这里多说了,网上有一大堆资料可以查看。 qt 对默认的是 unicode 编码, 在Window开发环境里,比较通用的写法是: 在main.cpp文件中加入: 1. QTextCodec *gbk = QTextCodec::codecForName("gb18030"); 2. QTextCodec::setCodecForTr(gbk); 3. QTextCodec::setCodecForLocale(gbk); 4. QTextCodec::setCodecForCStrings(gbk); 第一行:定义gb18030编码格式 第二行: 这个函数的作用是设置传给 tr函数时的默认字符串编码 ,GUI设计中最常用的一种。 第三行:这个函数主要用于设置和对本地文件系统读写时候的默认编码格式。比如通过 流读取一个文件内容时的编码格式 。或者通过 qDebug()输出打印信息时的编码 。 第四行:这个函数主要是用在 字符常量或者QByteArray构造QString对象时使用的一种编码方式 。 同理,在Linux开发环境里, 通用的写法是: QTextCodec *utg8 = QTextCodec::codecForName("utf-8"); QTextCodec: