乱码

关于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")

ajax中文乱码问题的总结

[亡魂溺海] 提交于 2020-11-30 13:42:33
ajax中文乱码问题的总结 ajax中文乱码问题的总结 本章解决在AJAX中常见的中文问题,分析中文乱码产生的原因,以及如何解决乱码问题 1. HTTP协议的编码规定 在HTTP协议中,浏览器不能向服务器直接传递某些特殊字符,必须是这些字符进行URL编码后再进行传送。url编码遵循的规则: 将空格转换为(+) 对0-9,a-z,A-Z之间的字符保持不变。 对于所有其他的字符,用这个字符的当前字符集编码在内存中的十六进制格式表示,并在每个十六进制字节前加上一个百分号%。例如,字符“+”用%2B表示,字符“=”用%3D表示,字符“&”用%26表示,字符“国”用%B9%FA表示注意,同一个中文字符在不同的字符集编码方式下,在内存中的编码值也是不同的,一个字符的URL编码是针对字符在内存中的码值而言的,采用不同编码的同一个字符的URL编码结果是不同的。 2. encodeURI()与encodeURIComponent()函数 javaScript中提供了两个函数来对字符进行URL编码:encodeURI()与encodeURIComponent(),两者的区别在于,encodeURI函数不会对以下的字符进行处理: “! @ # $ & * ( ) = : / ; ? + ' ”,而encodeURIComponent函数会对更多的字符进行处理比如 URI的组成部分 “/”

utf-8编码引起js输出中文乱码的解决办法

老子叫甜甜 提交于 2020-04-14 14:29:35
【推荐阅读】微服务还能火多久?>>> 如果web application的编码规则是utf-8,如网页头中的: <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 那么js文件中如果有中文输出就会出现乱码,解决此个问题可在引用javascript输出的地方加上charset="gb2312" 或 charset="big5"(假设输出的是Big5繁体字)。 例: <script type="text/javascript" language="javascript" src="scripts/output.js" charset="gb2312"></script> PS:另一种解决方法是把js文件保存为utf-8编码。 如果web application的编码规则是utf-8,如网页头中的: <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 那么js文件中如果有中文输出就会出现乱码,解决此个问题可在引用javascript输出的地方加上charset="gb2312" 或 charset="big5"(假设输出的是Big5繁体字)。 例: <script type="text/javascript"

那些年我们踩过的乱码坑

生来就可爱ヽ(ⅴ<●) 提交于 2020-04-06 21:48:24
前言 这是一个由乱码引发的故事。抱歉我暂时找不到更加惨烈的图,请相信我,还有更目不忍视的画面。请看下图那些框框,那都是些什么鬼!这是要害死强迫症吗?如果同时看到几十个框,简直让人崩溃。 问题来了,这究竟是些什么鬼? 计算机编码 既然是乱码,当然要看编码,那什么是编码呢?我们都知道,计算机本质上不就是 01 组成的一坨东西在运作着么? 01 这叫二进制,也就是最基本最底层的编码。 那么大家平常看到的网页也好,APP也好,上面的这些文字符号是怎么表现出来的?当然是根据标记打印出来的,但计算机只能是二进制的存储,并不能真正存ABCD呀,那就要把字母映射为相应的二进制。 上个世纪60年代,美国制定了一套字符编码,对英语字符与二进制位之间的关系,做了统一规定。这被称为ASCII码,一直沿用至今。 ASCII码一共规定了128个字符的编码,比如大写的字母A是65(二进制01000001)。这128个符号(包括32个不能打印出来的控制符号),只占用了一个字节的后面7位,最前面的1位统一规定为0。但你美国英文字母少啊,我中文怎么办呢?全世界其他国家的字母其他语言怎么办呢,那就多加一些字节来表示咯。 如果有一种编码,将世界上所有的符号都纳入其中。每一个符号都给予一个独一无二的编码,那么乱码问题就会消失了,这就是Unicode。Unicode规定了每个符号都有自己的二进制码。标准虽是标准

python3简单爬虫

允我心安 提交于 2020-04-06 19:51:54
刚接触爬虫,由于本科主要是学java的,因此之前从java入手爬虫。其实就是模拟http请求,然后将返回的html代码提取自己想要的数据。不过说起来很简单,作为小白,实现起来还是不容易阿。 之前稍微看了下一个java的框架源代码(还没全部看完,不过和还是会抽时间看看的),不过导师让我用python实现,因而转入python(导师很喜欢python的样子阿)。 说起python的环境搭建等等,我作为刚入python的小白其实还不清楚,直接下载了一个python3的源码,然后,照着操作安装了下,其实很简单,不多说了。 爬网页第一步就是要获取html代码 说来python获取html十分简单,只要几行就可以了,把我给震惊到了!!像java还是要写不少行的,再加上异常,代码看着还是挺臃肿的(不过习惯了)。 #coding=utf-8 import urllib.request def getHtml(url): response= urllib.request.urlopen(url) html = response.read() return html html = getHtml("http://www.baidu.com") print(html) 这里爬取了百度首页的html代码,没错,这是这么简单。 这里用了一个urllib.request模块,其实我觉得把java代码封装下

Python操作MYSQL数据库

梦想的初衷 提交于 2020-03-26 17:04:02
3 月,跳不动了?>>> 一、安装MySQLdb MySQLdb is an interface to the popular MySQL database server for Python. The design goals are 1. Compliance with Python database API version 2.0(兼容python 数据库API2.0接口) 2. Thread-safety(线程安全) 3. Thread-friendliness (threads will not block each other) (线程友好,线程间不会相互阻塞) 下载地址:(可以根据需要下载window 或linux版本的MySQLdb) https://pypi.python.org/pypi/MySQL-python/1.2.5 如果是windows的版本,直接运行,一路next安装即可。 如果是linux版本,则安装步骤如下: 详细可参与安装包中的INSTALL文件 $ tar xfz MySQL-python-1.2.1.tar.gz $ cd MySQL-python-1.2.1 $ # edit site.cfg if necessary $ python setup.py build $ sudo python setup.py install # or

Java使用Jolt连接Tuxedo服务器

末鹿安然 提交于 2020-03-23 14:58:20
3 月,跳不动了?>>> 在电信领域的开发中,现在流行的架构是前台使用java,负责组织业务流程、展现结果,后台使用C/C++来封装各种服务,供前台调用。这就会出现前台Java如何连接Tuxedo服务器,调用服务的问题。通常,有两种解决方案,WTC和Jolt。WTC是weblogic连接tuxedo的专有方案,Jolt是tuxedo本身携带的组件。因为weblogic和tuxedo都是oracle的产品,因此,可以推测,WTC的集成度和效率会高一些,功能强大一些,但须于weblogic绑定,没有Jolt自由度高,因此个人推荐使用Jolt来连接tuxedo. 下面将介绍使用Jolt连接Tuxedo过程中,tuxedo侧的主要配置,以及令人头痛的乱码问题的解决: 1.1 、 ubbconfig 文件配置 为使 Jolt 客户端 正常连接到 Tuxedo 服务器,需要在 ubbconfig 中开启 JSL 和 JREPSVR 两个进程, JSL 用于监听并分发客户端的请求, JREPSVR 进程用于配置 Tuxedo 导出给 Jolt 客户端的服务,具体配置如下: 修改 *RESOURCES 区的 MAXACCESSERS 参数的值为足够大,如 900 。 在 *GROUPS 区添加 JSLGRP 和 JREPGRP 两个 group ,如下: JSLGRP LMID=SITE1

MySQL基本操作及乱码问题的解决方法

假装没事ソ 提交于 2020-03-12 19:21:48
mysql: //登录mysql数据库 mysql -u用户名 -p密码 //显示所有数据库 show databases; //使用mysql数据库,这个是存储数据库用户和密码的 user mysql; //把user中的主机名,用户,密码查询出来 select host,user,password from user; //更改root用户的密码 update user set password=password('roo') where user='root'; //添加一个admin用户,并设置密码为:admin insert into user (host,user,password) values ('localhost','admin'password('admin'); //创建一个orcl的数据库 create database orcl; //把这个数据库的所有权限全部分配给admin用户,并设置访问密码为:admin grant all privileges on orcl.* to admin @localhost identified by 'admin'; 乱码的问题解决: ---------------------------------------------- //查看数据库使用的字符集编码 show variables like

myeclipse(eclipse)乱码处理

偶尔善良 提交于 2020-03-02 13:19:58
大家用myeclipse开发的时候,从别的地方或svn拉下来的代码,经常会遇到乱码问题,对新手来说不知道怎么去解决,现在小编告诉大家该怎么解决,希望对大家有用。 先看看乱码问题 有好多种解决方案先说第一种:整个文件类型的编码格式 , 点击myeclipse->window->preferences->General->Content Types 找到要修改的文件的类型(JAVA,JSP等等),在下面有个Default encoding,在输入框中输入GBK 或UTF-8 点击Update 点击OK 重启就ok了 第二种方法:改变整个Eclipse工作空间的编码格式 点击myeclipse->window->preferences->General->workspaceTypes 改变文本文件编码格式为UTF-8. http://jingyan.baidu.com/article/00a07f3840163b82d028dc0a.html 来源: oschina 链接: https://my.oschina.net/u/2250952/blog/540900

原来编码就是这么简单

不问归期 提交于 2019-12-30 14:04:41
日期:2019年12月29日 作者:Commas 注释:编码这件小事,其实就是这么回事…… 文章目录 一、什么是编码? 二、计算机编码原来如此 三、字符编码和字符集不过如此 四、字符编码大爆炸 四、字符编码大一统 一、什么是编码? 编码 在我们生活中无处不在,暂且我们先不讨论 计算机编码 ,举几个生活中的例子: 身份证号码 :前两位代表省、自治区、直辖市,比如说“44…”,代表广东省,而“43…”,代表湖南省; 车牌号 :第一个汉字代表车户口所在省的简称,比如“粤…”,代表广东省; 电话区号 :前三位是电话区号,比如说“020-…”,代表广州,而“0760-…”,代表中山; 学号 :前四位代表学生的届数,比如说“2019…”,代表2019届学生; 摩斯密码 :用特殊符号代表想要表达的含义,比如说用“… — …”来代表“SOS”,向他人发送求救信号; 从以上的例子当中,我们不难发现, 编码的本质 就是,出于某种原因,用一种东西去表达另外一种东西,且这种表达的关系都是一一对应的,有点类似于字典,我们只需要对应着规则去找就可以得到我们想要的答案。同时也正是因为一一对应的关系是确定的,所以才不会说身份证号码前两位44即代表广东省,又代表湖南省,身份证44开头的人即是广东人,又是湖南人这样的乌龙,从而出现了所谓的 “乱码” 。 那么问题来了, 计算机编码 是怎么回事呢?其实也就那么回事