utf8

关于wxWidgets控件出现乱码

旧街凉风 提交于 2021-02-15 09:36:45
这两天在用wxWidgets做一个小程序,突然遇到了一个控件显示出现乱码的问题。 首先声明:我用的编译器是Visual Studio 2005,wxWidgets版本是2.8.12,下面的解决方法不一定对所有的平台都有效。 我们知道,wxWidgets中控件显示字符串一般都是用wxString,例如下面的一小段代码创建并显示一个按钮: // 创建一个按钮,显示名称就是“按钮” wxButton* oneButton = new wxButton( itemFrame1, ID_BUTTON, wxT("按钮"), wxDefaultPosition, wxDefaultSize, 0); // 把这个按钮放在一个BoxSizer中 itemBoxSizer->Add(oneButton, 1, wxALIGN_CENTER_VERTICAL|wxALL, 5); 上面的代码没有错误,显示截图如下: 但是,很多情况下,我们想要显示的控件的标签是先放在char *中的,我们当然要先转换成wxString,转换的方法有很多,比如用wxString::FromUTF8(),或者可以定义一个wxString对象,调用Printf方法。然而,两种方法都不行。 如下代码: char *label = "按钮"; wxString wxLabel; wxLabel.Printf(wxT("%s")

字符编码笔记:ASCII,Unicode和UTF-8

[亡魂溺海] 提交于 2021-01-07 23:29:28
作者: 阮一峰 日期: 2007年10月28日 今天中午,我突然想搞清楚Unicode和UTF-8之间的关系,于是就开始在网上查资料。 结果,这个问题比我想象的复杂,从午饭后一直看到晚上9点,才算初步搞清楚。 下面就是我的笔记,主要用来整理自己的思路。但是,我尽量试图写得通俗易懂,希望能对其他朋友有用。毕竟,字符编码是计算机技术的基石,想要熟练使用计算机,就必须懂得一点字符编码的知识。 1. ASCII码 我们知道,在计算机内部,所有的信息最终都表示为一个二进制的字符串。每一个二进制位(bit)有0和1两种状态,因此八个二进制位就可以组合出256种状态,这被称为一个字节(byte)。也就是说,一个字节一共可以用来表示256种不同的状态,每一个状态对应一个符号,就是256个符号,从0000000到11111111。 上个世纪60年代,美国制定了一套字符编码,对英语字符与二进制位之间的关系,做了统一规定。这被称为ASCII码,一直沿用至今。 ASCII码一共规定了128个字符的编码,比如空格"SPACE"是32(二进制00100000),大写的字母A是65(二进制01000001)。这128个符号(包括32个不能打印出来的控制符号),只占用了一个字节的后面7位,最前面的1位统一规定为0。 2、非ASCII编码 英语用128个符号编码就够了,但是用来表示其他语言,128个符号是不够的

PHP+Smarty模板中CSS问题:Firefox下正常显示,而在IE下,显示得很混乱

情到浓时终转凉″ 提交于 2020-04-07 05:45:09
第一个原因是:bom的问题(在页面上输出空信息) [转] 先制作好了页面的模板(用UTF-8编码),当载入Smarty运行的时候,发现在Firefox下正常显示,而在IE下,显示得很混乱!难道 是smarty和CSS结合有问题?PHP+Smarty时显示混乱,而不用Smarty转而采用原始的PHP+HTML混写的时候则无此现象,查阅代 码,无法找出任何破绽,因此开始怀疑Smarty有问题。 根据以往的经验,我开始怀疑是当PHP输出HTML的时候向其中加入了额外的不可见代码,于是将PHP输出的内容原封不动保存为HTML,然后提交到 validator.w3.org [ 这个网站很有用,可以帮你检测html的错误信息 ]进行XHTML验证,果然,验证失败,提示文件头部被加入了BOM(万国码档案签名:Byte Order Mark, U+FEFF)标记,妈的,就是这个垃圾标记,已经不是第一次害我了! 于是,重新打开DM和UltraEdit重新对PHP页面以及模板页面进行编码转换,去除了其中的BOM标记,一切正常! 解决此问题的最简单的方法是:把原来的模板文件及php文件用 UltraEdit 打开,然后重新保存时选择 UTF-8-无BOM格式即可。呵呵,是不是很简单呢。这是我在建我的小站:创意产品网 www.cygoods.com 过程中遇到的问题,记录下来

坑爹的文件名问题

两盒软妹~` 提交于 2020-04-06 17:43:37
由于以前导出文件名都是一个数字串,一直没有在意这个名称的问题.才有现在的懵逼 修改前: /** * 设置导出头部信息 (xls 格式 ) * * @param response * @param fileName */ public static void setResponseForXls ( HttpServletResponse response , String fileName ) throws UnsupportedEncodingException { response . setCharacterEncoding ( "utf-8" ); response . setContentType ( "multipart/form-data" ); response . setHeader ( "Content-Disposition" , "attachment;fileName=" + fileName + ".xls" ); } 修改后: public static void setResponseForXls ( HttpServletResponse response , String fileName ) throws UnsupportedEncodingException { response . setCharacterEncoding ( "utf-8

CDH从零开始快速安装法

允我心安 提交于 2020-04-06 01:10:38
环境:(全程root用户操作,如果是非root用户需要sudo权限) 云服务器-centos7.2,2CPU+8G内存+100G磁盘 * 3 (我把hostname分别命名为:data-1、data-2、data-3) CDH准备安装5.16.2版本 mysql准备安装5.7版本 开工,CDH在线安装~~~ 【准备工作】 1.1 命令:ssh-keygen,为了免密操作:把三台机器的公钥(~/.ssh/id_rsa.pub)都写入到三台机器的~/.ssh/authorized_keys中。 1.2 配置/etc/hosts,为了机器间互相用hostname访问方便(如果用内网ip访问的话可以不配置) 1.3 安装ntp,用于时间同步(如果各个机器上的时间不一致,集群会有各种问题)。【教程见附录--ntp配置】 1.4 安装mysql,用于存储集群的元数据(不多说。。。练手的话可以直接用内置的PSQL存储元数据)【教程见附录--mysql5.7配置】 1.5 去mysql官网下载驱动:cp mysql-connector-java-5.1.39-bin.jar /usr/share/java/mysql-connector-java(/usr/share/java/mysql-connector-java必须是这个路径、这个名字否则CDH无法识别) 【傻瓜式安装CDH -->

Maven-指定 JDK 版本

狂风中的少年 提交于 2020-04-05 20:57:45
全局指定 settings.xml <profile> <id>jdk-1.8</id> <activation> <jdk>1.8</jdk> <activeByDefault>true</activeByDefault> </activation> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <maven.compiler.encoding>UTF-8</maven.compiler.encoding> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> <maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion> </properties> </profile> 当前项目指定 pom.xml <build> <plugins> <!-- 指定jdk --> <plugin> <groupId

ASCII,Unicode编码和UTF-8解惑

生来就可爱ヽ(ⅴ<●) 提交于 2020-04-05 16:58:57
ASCII,Unicode和UTF-8终于找到一个能完全搞清楚的文章了 转载:Deft_MKJing宓珂璟 https://blog.csdn.net/Deft_MKJing/article/details/79460485 平时喜欢写东西,看博客,一直对编码有些懵,今天下午也不知道看到了什么,突然想了解下,就找到了这个文章,看完真的豁然开朗,这个必须留下来做纪念。 1.ASCII 我们知道,计算机内部,所有信息最终都是一个二进制值。每一个二进制位(bit)有0和1两种状态,因此八个二进制位就可以组合出256种状态,这被称为一个字节(byte)。也就是说,一个字节一共可以用来表示256种不同的状态,每一个状态对应一个符号,就是256个符号,从00000000到11111111。 上个世纪60年代,美国制定了一套字符编码,对英语字符与二进制位之间的关系,做了统一规定。这被称为 ASCII 码,一直沿用至今。 ASCII 码一共规定了128个字符的编码,比如空格SPACE是32(二进制00100000),大写的字母A是65(二进制01000001)。这128个符号(包括32个不能打印出来的控制符号),只占用了一个字节的后面7位,最前面的一位统一规定为0。 2.非ASCII编码 英语用128个符号编码就够了,但是用来表示其他语言,128个符号是不够的。比如,在法语中,字母上方有注音符号

UTF-8 BOM和UTF-8的区别

守給你的承諾、 提交于 2020-04-05 16:57:35
今天导入Java程序时候遇到了一些问题,查了查发现是编码的问题,在Notepad编码中把UTF-8 BOM改成UTF-8再重新编译一遍,就可以用了。 但是为啥呢,正好研究一下 BOM——Byte Order Mark,就是字节序标记 概念: 在UCS 编码中有一个叫做”ZERO WIDTH NO-BREAK SPACE“的字符,它的编码是FEFF。而FFFE在UCS中是不存在的字符,所以不应该出现在实际传输中。 UCS规范建议我们在传输字节流前,先传输 字符”ZERO WIDTH NO-BREAK SPACE“。 如果接收者收到FEFF,就表明这个字节流是大字节序的;如果收到FFFE,就表明这个字节流是小字节序的。因此字符”ZERO WIDTH NO-BREAK SPACE“又被称作BOM。 作用 UTF-8不需要BOM来表明字节顺序,但可以用BOM来表明编码方式。字符” ZERO WIDTH NO-BREAK SPACE “的 UTF-8编码 是 EF BB BF 。所以如果接收者收到以 EF BB BF 开头的字节流,就知道这是 UTF-8编码 了。 所以 新建的空文件会有3字节的大小。 来源: oschina 链接: https://my.oschina.net/u/2615680/blog/3219466

Day8 文件处理

大憨熊 提交于 2020-04-04 00:06:27
文件处理 文件操作初识 文件路径:d:ake.txt 编码方式:utf-8,gbk,GB2312.... 操作方式:只读,只写,写读,读写,追加 等。 报错原因: UnicodeDecodeError: 'gb2312' codec can't decode byte 0xa6 in position 2: illegal multibyte sequence 编码不一致,存储文件时编码与打开文件时编码不一致。 r'd:\ake.txt ‘ 路径问题 1,在路径的最前面,+ r 2,每个\ 变成 \\ 绝对路径: d:\ake.txt 从根目录开始找 相对路径: 当前目录,当前文件夹。 读: r 只读模式 read 一次性都读出来 f =open("ake",encoding="utf-8",mode="r") content = f.read(5) # 读取文件里的5个字符 print(content) f.close() readline 按行读取 f = open("ake",encoding="utf-8",mode="r") print(f.readline()) # 打印第一行字符串 f.close() readlines 按行读出来,并将其放在一个列表中 f = open("ake",encoding="utf-8",mode="r") content = f

JVM系列十(Class 文件结构).

不想你离开。 提交于 2020-04-03 19:39:33
一、Class 文件结构 JDK 的版本号已经到 14 了,相对于语言、API 以及 Java 技术体系中其他方面的变化,Class 文件结构一直处于比较稳定的状态,Class 文件的主体结构、字节码指令的语义和数量几乎没有出现过变动。 Class 文件是一组以8位字节为基础单位的二进制流,各个数据项目严格按照顺序紧凑地排列在 Class 文件中,中间没有添加任何分隔符,这使得整个 Class 文件中存储的内容几乎全部是程序运行的必要数据,没有空隙存在。 根据 Java 虚拟机规范的规定,Class 文件格式采用一种类似于 C 语言结构体的伪结构来存储数据,这种伪结构只有两种数据类型:无符号数和表: 无符号数:以 u1、u2、u4、u8 来分别代表1个字节、2个字节、4个字节和8个字节的无符号数,无符号数可以用来描述数字、索引引用、数量值或者按照 UTF-8 编码构成字符串值。 表:由多个无符号数或者其他表作为数据项构成的复合数据类型,所有表都习惯性的以“_info” 结尾,用于描述有层次关系的复合结构的数据,整个 Class 文件本质上就是一张表。 下面是 Class 文件格式: 类型 名称 数量 描述 u4 magic 1 表示这个文件是否为一个能被虚拟机接受的 Class 文件 u2 minor_version 1 次版本号 u2 major_version 1 主版本号