gbk

linux 文件编码格式转换

自古美人都是妖i 提交于 2019-12-07 14:46:05
如果你需要在 Linux 中操作windows下的文件,那么你可能会经常遇到文件编码转换的问题。Windows中默认的文件格式是GBK(gb2312),而Linux一般都是UTF-8。下面介绍一下,在Linux中如何查看文件的编码及如何进行对文件进行编码转换。 查看文件编码 在Linux中查看文件编码可以通过以下几种方式: 1.在 Vim 中可以直接查看文件编码 :set fileencoding 即可显示文件编码格式。 如果你只是想查看其它编码格式的文件或者想解决用Vim查看文件乱码的问题,那么你可以在 ~/.vimrc 文件中添加以下内容: set encoding=utf-8 fileencodings=ucs-bom,utf-8,cp936 这样,就可以让vim自动识别文件编码(可以自动识别UTF-8或者GBK编码的文件),其实就是依照fileencodings提供的编码列表尝试,如果没有找到合适的编码,就用latin-1(ASCII)编码打开。 文件编码转换 1.在Vim中直接进行转换文件编码,比如将一个文件转换成utf-8格式 :set fileencoding=utf-8 2. iconv 转换,iconv的命令格式如下: iconv -f encoding -t encoding inputfile 比如将一个UTF-8 编码的文件转换成GBK编码 iconv -f

Locale: 字符集(character set).

◇◆丶佛笑我妖孽 提交于 2019-12-07 02:56:16
char 可被应用于所有8bit以及8bit以下的字符集,例如: US-ASCII,ISO-Latin-1和ISO-Latin-9以及UTF-8. char16_t 可被用于UCS-2,也可被用于UTF-16的code unit(代码单元). char32_t 可被用于UCS-4/UTF-32. wchar_t 它通常等价于char16_t或者char32_t. US-ASCII 7-bit字符集,于1963年完成标准化,用于电传打字机和其他设备,最开始的16个字符是不可打印的。 ISO-Latin-1或ISO-8859-1 这是一个8bit的字符集,于1987年完成标准提供西欧语言的所有字符, 这个字符集也是下面所有字符集的基础. UCS-2 这是一个 16bit的定长字符集(2byte) ,提供Universal Character Set(全球字符集)和Unicode(统一码)中最重要的65536个字符. UTF-8 这是个 multi-byte字符集 ,使用1-4个8bit值,用来表现Universal Character Set(全球字符集)和Unicode(统一码)的所有字符.主要被广泛的应用于万维网(world wide web). UTF-16 这也是一个 multi-byte字符集 ,使用1-2 code unit(每个16bit),用来表现Universal

控制台程序的中文输出乱码问题,printf,wprintf与setlocale

烂漫一生 提交于 2019-12-06 12:40:50
解决gcc编译时的乱码问题 今天发现用securecrt登陆时,gcc编译出错时会出现乱码,但直接在主机的窗口界面下用Shell编译却没有乱码。查看了一下当时的错误描述,发现它的引号是中文引号,导致在SecureCRT中显示出错: before numeric constant 在网上查了一下,可以通过修改LC_CTYPE=zh_CN.GBK解决这个问题,具体的方法有两个: 1. 通过export命令修改LC_CTYPE变量的值 tianfang > export LC_CTYPE=zh_CN.GBK tianfang > gcc main.c main.c:1:1: error: expected identifier or '(' before numeric constant tianfang > 2. 修改/etc/sysconfig/language(大部分linux版本下这个文件叫/etc/sysconfig/i18n)中的变量设置,重新登陆后生效。 #RC_LC_CTYPE="" RC_LC_CTYPE="zh_CN.GBK" 我个人比较推荐方法2。 #include <stdio.h> #include <wchar.h> int main(void) { char str[] = "中文"; wchar_t wstr[] = L"中文"; printf("1:%s

ftp服务器终端登录后乱码处理方法

北城余情 提交于 2019-12-06 09:40:21
首先在windows上用资源管理器登录看看会不会乱码,如果不会,说明是GBK编码 因为windows默认是GBK(936),linux默认(UTF-8) 因为FTP服务器我们修改不了,如果用linux终端登录FTP那就需要修改终端登录软件的编码 例如用Xshell修改为GBK后再登录ftp就行了 来源: https://www.cnblogs.com/pyvm/p/11974637.html

python-字符编码的转换

China☆狼群 提交于 2019-12-06 01:10:44
python-字符编码的转换 1、了解基础知识 ASCII 一个英文,占一个字节。只能存英文和特殊字符。 gb2312 约可以存7000中文 gb1830 约可以存27000中文 gbk 默认中文, Unicode 一个英文和中文占2个字节,万国码,可以显示全球各个国家的字符。 utf-8(unicode的扩展),可变长的字符编码, 英文还是按ASCII方式存储,1个中文占3个字节。 在python2默认编码是ASCII, python3里默认是unicode 其他语言转成unicode ,再将unicode 转换成gbk. 中文转成unicode ,再通过unicodel转换。 在py3中encode,在转码的同时还会把string 变成bytes类型,decode在解码的同时还会把bytes变回string 一定要记得,用什么方式编码的就必须用什么方式解码 #coding=gbk import sys print(sys.getdefaultencoding())#查看默认的字符编码是什么 utf_gbk="你好" utf1=utf_gbk.encode("utf-8").decode("utf-8").encode("gbk").decode("gbk") print(utf1,type(utf1)) 打印结果 utf-8 你好 <class 'str'> 总结

UnicodeDecodeError: 'utf-8' codec can't decode byte..问题

|▌冷眼眸甩不掉的悲伤 提交于 2019-12-05 19:50:48
解决UnicodeDecodeError: 'utf-8' codec can't decode byte..问题 问题描述: 问题分析: 该情况是由于出现了无法进行转换的 二进制数据 造成的,可以写一个小的脚本来判断下,是整体的字符集参数选择上出现了问题,还是出现了部分的无法转换的二进制块: 问题解决 法一: 将gbk编码数据decode('gbk')得到utf8编码的数据 法二:修改字符集参数,一般这种情况出现得较多是在国标码(GBK)和utf8之间选择出现了问题。 ​ 出现异常报错是由于设置了decode()方法的第二个参数errors为严格(strict)形式造成的,因为默认就是这个参数,将其更改为ignore等即可。例如: line.decode("utf8","ignore") 法三:在网上搜了很多人的处理方法是在程序的顶部加 import sysreload( sys )sys.setdefaultencoding('gbk') 可是我自己试一了,程序错是不报了,但是实际没有运行 最后,我在程度的顶部加了下面两行就好了,中文也可以正常显示了 # !/usr/bin/env Python # coding=utf-8 ​ 还有一种情况就是如果你用pyhton IO读取一个文件,那么要求将文件的编码方式转换成UTF-8。 来源: https://www.cnblogs

【python测试开发栈】带你彻底搞明白python3编码原理

﹥>﹥吖頭↗ 提交于 2019-12-05 06:08:48
在之前的文章中,我们介绍过编码格式的发展史:[文章传送门-todo]。今天我们通过几个例子,来彻底搞清楚python3中的编码格式原理,这样你之后写python脚本时碰到编码问题,才能有章可循。 我们先搞清楚几个概念: 系统默认编码 :指python解释器默认的编码格式,在python文件头部没有声明其他编码格式时,python3默认的编码格式是utf-8。 本地默认编码 :操作系统默认的编码,常见的Windows的默认编码是gbk,Linux的默认编码是UTF-8。 python文件头部声明编码格式 :修改的是文件的默认编码格式,只是会影响python解释器读取python文件时的编码格式,并不会改变系统默认编码和本地默认编码。 通过python自带的库,可以查看系统默认编码和本地默认编码 Python 3.7.4 (tags/v3.7.4:e09359112e, Jul 8 2019, 20:34:20) [MSC v.1916 64 bit (AMD64)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>> import sys >>> sys.getdefaultencoding() 'utf-8' >>> import locale >>> locale

python基础之六:编码简介以及python3中的编码

China☆狼群 提交于 2019-12-05 05:15:02
1、常见的四种编码方式的编码过程: ascii     A : 00000010 8位 一个字节 unicode      A : 00000000 00000001 00000010 00000100 32位 四个字节 中:00000000 00000001 00000010 00000110 32位 四个字节 utf-8      A : 00100000 8位 一个字节     中 : 00000001 00000010 00000110 24位 三个字节 gbk      A : 00000110 8位 一个字节     中 : 00000010 00000110 16位 两个字节 1),各个编码之间的二进制,是不能互相识别的,会产生乱码。 2),文件的储存,传输,不能是unicode(只能是utf-8 utf-16 gbk,gb2312,asciid等) 3),简单描述就是:   ascii : 8位 1字节 表示1个字符   unicode 32位 4个字节 表示一个字符   utf- 8 1个英文 8位,1个字节   欧洲 16位 两个字节 表示一个字符   亚洲 24位 三个字节 表示一个字符   gbk 1个英文 8位,1个字节   亚洲 16位 两个字节 表示一个字符 2、python3 中的编码   str类型的数据,是以unicode(32位表示一个字符

mysql数据库通过java程序插入数据后,数据表中数据是???乱码怎么办

怎甘沉沦 提交于 2019-12-05 03:13:39
更改数据库安装时的字符编码。 打开mysql安装目录,找到my.ini文件,通过使用记事本的方式打开,将这里面的default-character-set=latin1修改成gbk,注意这里面有两处需要修改。 修改数据库实例中的编码,打开data文件夹,找到对应的数据库实例,修改里面的db.opt文件,将字符编码改成gbk如图所示。 转自 https://jingyan.baidu.com/article/4ae03de3ebb0d83eff9e6b16.html 来源: https://www.cnblogs.com/mingjianchen/p/11901820.html

day01 Python基础02_20181223

不羁岁月 提交于 2019-12-05 00:08:01
一. 格式化输出 现有一练习需求,问用户的姓名、年龄、工作、爱好 ,然后打印成以下格式 ------------ info of 太白金星 ----------- Name : 太白金星 Age : 22 job : Teacher Hobbie: girl ------------- end ----------------- 你怎么实现呢?你会发现,用字符拼接的方式还难实现这种格式的输出,所以一起来学一下新姿势 只需要把要打印的格式先准备好, 由于里面的 一些信息是需要用户输入的,你没办法预设知道,因此可以先放置个占位符,再把字符串里的占位符与外部的变量做个映射关系就好啦 name = input("Name:") age = input("Age:") job = input("Job:") hobbie = input("Hobbie:") info = ''' ------------ info of %s ----------- #这里的每个%s就是一个占位符,本行的代表 后面拓号里的 name Name : %s #代表 name Age : %s #代表 age job : %s #代表 job Hobbie: %s #代表 hobbie ------------- end ----------------- ''' %(name,name,age,job