Qt532的QString输出各种编码的16进制数组(测试代码)
环境:Win7x64、Qt5.3.2 MSVC2010 OpenGL、vs2010
1、只测试了 4种:Utf8、Latin1、Local8Bit、unicode
2、测试代码:(这个是 "MainWindow.cpp",文件的编码方式是 "UTF8 + BOM")
#include "MainWindow.h"
#include "ui_mainwindow.h" MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
} MainWindow::~MainWindow()
{
delete ui;
} #include <QTextCodec> const char* JDP = "接地牌";
QString g_JDP = QString::null; const char* KG_0 = "开关_0";
const char* KG_1 = "#开关_1";
const char* ZD_0 = "#闸刀_0";
const char* ZD_1 = "#闸刀_1";
const char* DD_0 = "#地刀_0";
const char* DD_1 = "#地刀_1"; const char* PB = "配变";
const char* DLSRDQ_0 = "跌落式熔断器_0";
const char* DLSRDQ_1 = "#跌落式熔断器_1";
const char* TJX = "T接线"; const char* TXLXMC = "图形类型名称";
//const char* YZSJB = "有载三卷变"; const char* UnitClassify_YZLJB = "有载两卷变";
const char* UnitClassify_YZSJB = "有载三卷变";
const char* UnitClassify_SCKG = "手车开关";
const char* UnitClassify_TextRect = "文本框"; // *** QString g_KG_0 = QString::null;
QString g_KG_1 = QString::null;
QString g_ZD_0 = QString::null;
QString g_ZD_1 = QString::null;
QString g_DD_0 = QString::null;
QString g_DD_1 = QString::null; QString g_PB = QString::null;
QString g_DLSRDQ_0 = QString::null;
QString g_DLSRDQ_1 = QString::null;
QString g_TJX = QString::null; QString g_TXLXMC = QString::null;
//QString g_YZSJB = QString::null; QString g_UnitClassify_YZLJB = QString::null;
QString g_UnitClassify_YZSJB = QString::null;
QString g_UnitClassify_SCKG = QString::null;
QString g_UnitClassify_TextRect = QString::null; const char* Test_Z01 = "Unicode编码的字符串(ZC: 双字节)";
QString g_Test_Z01 = QString::null; void StringCHS_init()
{
QTextCodec *pCodec = QTextCodec::codecForName("GBK"); g_JDP = pCodec->toUnicode(JDP); g_KG_0 = pCodec->toUnicode(KG_0);
g_KG_1 = pCodec->toUnicode(KG_1);
g_ZD_0 = pCodec->toUnicode(ZD_0);
g_ZD_1 = pCodec->toUnicode(ZD_1);
g_DD_0 = pCodec->toUnicode(DD_0);
g_DD_1 = pCodec->toUnicode(DD_1); g_PB = pCodec->toUnicode(PB);
g_DLSRDQ_0 = pCodec->toUnicode(DLSRDQ_0);
g_DLSRDQ_1 = pCodec->toUnicode(DLSRDQ_1);
g_TJX = pCodec->toUnicode(TJX); g_TXLXMC = pCodec->toUnicode(TXLXMC);
//g_YZSJB = pCodec->toUnicode(YZSJB); g_UnitClassify_YZLJB = pCodec->toUnicode(UnitClassify_YZLJB);
g_UnitClassify_YZSJB = pCodec->toUnicode(UnitClassify_YZSJB);
g_UnitClassify_SCKG = pCodec->toUnicode(UnitClassify_SCKG);
g_UnitClassify_TextRect = pCodec->toUnicode(UnitClassify_TextRect); g_Test_Z01 = pCodec->toUnicode(Test_Z01);
} #include <QDebug> void MainWindow::on_pbtn2Utf8_clicked()
{
StringCHS_init();
QString strPrint(""); QByteArray ba = g_Test_Z01.toUtf8();
for (int i=; i<ba.length(); i++)
{
char c = ba.at(i);
strPrint += QString::number( ((int)c)&0xFF, ) + " ";
}
qDebug() << "Utf8 :";
qDebug() << strPrint; qDebug() << ""; strPrint.clear();
ba = g_Test_Z01.toLatin1();
for (int i=; i<ba.length(); i++)
{
char c = ba.at(i);
strPrint += QString::number( ((int)c)&0xFF, ) + " ";
}
qDebug() << "Latin1 :";
qDebug() << strPrint; qDebug() << ""; strPrint.clear();
ba = g_Test_Z01.toLocal8Bit();
for (int i=; i<ba.length(); i++)
{
char c = ba.at(i);
strPrint += QString::number( ((int)c)&0xFF, ) + " ";
}
qDebug() << "Local8Bit :";
qDebug() << strPrint; qDebug() << ""; strPrint.clear();
for (int i=; i<g_Test_Z01.length(); i++)
{
QChar qc = g_Test_Z01.at(i);
ushort us = qc.unicode();
strPrint += QString::number( us, ) + " ";
}
qDebug() << "unicode :";
qDebug() << strPrint;
}
3、
4、
5、
Qt532的QString输出各种编码的16进制数组(测试代码)的更多相关文章
- C# 中关于汉字与16进制转换的代码
/// <summary> /// 从汉字转换到16进制 /// </summary> /// <param name="s"></par ...
- js方法实现rgb颜色转换成16进制格式的代码的方法
原文地址:http://www.cnblogs.com/vaal-water/archive/2013/04/08/3008880.html 自己试过很好用 function zero_fill_he ...
- [ACM_模拟] ZOJ 3713 [In 7-bit 特殊输出规则 7bits 16进制]
Very often, especially in programming contests, we treat a sequence of non-whitespace characters as ...
- python经常使用的十进制、16进制、字符串、字节串之间的转换(长期更新帖)
进行协议解析时.总是会遇到各种各样的数据转换的问题,从二进制到十进制,从字节串到整数等等 废话不多上.直接上样例 整数之间的进制转换: 10进制转16进制: hex(16) ==> 0x10 ...
- C# 发送16进制串口数据
一个困扰两天的问题:需要通过串口向设备发送的数据:0A010 7e 08 00 11 00 00 7e 76 7f我先将每个16进制字符转换成10进制,再将其转换成ASCII码对应的字符. /// & ...
- Android--字符串和16进制相互转化(解决中文乱码)
import java.io.ByteArrayOutputStream; /** * Created by Administrator on 2016/2/2. * -----------16进制和 ...
- python常用的十进制、16进制、字符串、字节串之间的转换
进行协议解析时,总是会遇到各种各样的数据转换的问题,从二进制到十进制,从字节串到整数等等 废话不多上,直接上例子 整数之间的进制转换: 10进制转16进制: hex(16) ==> 0x10 ...
- python--常用的十进制、16进制、字符串、字节串之间的转换
进行协议解析时,总是会遇到各种各样的数据转换的问题,从二进制到十进制,从字节串到整数等等 整数之间的进制转换: 10进制转16进制: hex(16) ==> 0x10 16进制转10进制 ...
- Java中byte与(16进制)字符串的互相转换
java中byte用二进制表示占用8位,而我们知道16进制的每个字符需要用4位二进制位来表示,所以我们就可以把每个byte转换成两个相应的16进制字符,即把byte的高4位和低4位分别转换成相应的16 ...
随机推荐
- django 数据库html显示
template {% autoescape off %} {% for each in obj %} <h2>{{ each.food }}</h2> <br/> ...
- php 把秒数转换为时长(h:i:s格式)
/** * 把秒数转换为时分秒的格式 * @param Int $times 时间,单位 秒 * @return String */ function secToTime($times){ $resu ...
- Golang闭包案例分析与普通函数对比
闭包案例 package main import ( "fmt" "strings" //记住一定引入strings包 ) //①编写一个函数makeSuffi ...
- oracle orion hugepages_settings.sh(支持OEL 7,4.1内核)
orion需要首先配置hugepage,否则会出现下列错误. [root@yyxxdb01 ~]# /opt/app/11.2.0/grid_home/bin/orion -run oltp -tes ...
- 【题解】Luogu CF343D Water Tree
原题传送门:CF343D Water Tree 这道题要用树链剖分,我博客里有对树链剖分的详细介绍 这明显是弱智题 树剖套珂朵莉树多简单啊 前置芝士:珂朵莉树 窝博客里对珂朵莉树的介绍 没什么好说的自 ...
- cscope for golang
从 https://gist.github.com/bopjiang/11146574 下载, 做了修改. cscope-go.sh #!/bin/bash # generate cscope ind ...
- Linux普通用户使用sudo免输密码(Debian/Redhat通用)
今天使用的Debian,由于使用的是普通用户,而使用的sudo都需要输入密码的繁琐操作, 下面是使用sudo时免输入密码. 需要管理员权限进行以下操作. 修改sudoers vim /etc/sudo ...
- Codeforces 832E Vasya and Shifts - 高斯消元
题目传送门 快速的传送门I 快速的传送门II 题目大意 (题意比较复杂,请自行阅读原题) 可以将原题的字母都看成它们的在字符表中的下标,这样问题就变成给定$n$个$m$维向量$\vec{a_{1}}, ...
- Python标准库inspect
inspect模块用于收集python对象的信息,可以获取类或函数的参数的信息,源码,解析堆栈,对对象进行类型检查等等,有几个好用的方法: getargspec(func) 返回一个命名元组ArgSp ...
- Restful framework【第八篇】频率组件
基本使用 频率: -限制每个ip地址一分钟访问10次 -写一个类 from rest_framework.throttling import SimpleRateThrottle class Visi ...