将gbk字符串转换成utf-8,存储到注册表中后,再次从注册表读取转换成gbk,有问题!!!
char *a = "新2新";
printf("gbk:'%s'\n", a);
int ii;
for(ii = ; ii < strlen(a); ii++)
{
printf("0x%0x ", (BYTE)a[ii]);
}
printf("\n\n");
char b[] = {};
size_t tt;
toUTF8(a, b, , &tt);
printf("utf-8:'%s'\n", b);
printf("tt:%d\n\n", tt);
setRegeditConfig_STR(HKEY_CURRENT_USER, REG_SOFT_KEY, key_file_dlg_choose_logo, b, tt + );
//int ii;
for(ii = ; ii < tt; ii++)
{
printf("0x%0x ", (BYTE)b[ii]);
}
printf("\n\n");
unsigned long readLen = MAX_PATH;
char filePath[MAX_PATH] = {};
if(getRegeditConfig_STR(HKEY_CURRENT_USER, REG_SOFT_KEY, key_file_dlg_choose_logo, filePath, &readLen))
{
printf("filePath:'%s'\n", filePath);
printf("len-utf8:%d\n\n", readLen);
int ii;
for(ii = ; ii < readLen; ii++)
{
printf("0x%0x ", (BYTE)filePath[ii]);
}
printf("\n\n");
char *p = utf8ToGBK(filePath, &tt);
printf("filePath-gbk:'%s'\n", p);
printf("len-gbk:%d\n", tt);
//int ii;
for(ii = ; ii < tt; ii++)
{
printf("0x%0x ", (BYTE)b[ii]);
}
printf("\n");
}
system("pause");
exit();

char *a = "新新2新";
printf("gbk:'%s'\n", a);
int ii;
for(ii = ; ii < strlen(a); ii++)
{
printf("0x%0x ", (BYTE)a[ii]);
}
printf("\n\n");
char b[] = {};
size_t tt;
toUTF8(a, b, , &tt);
printf("utf-8:'%s'\n", b);
printf("tt:%d\n\n", tt);
setRegeditConfig_STR(HKEY_CURRENT_USER, REG_SOFT_KEY, key_file_dlg_choose_logo, b, tt + );
//int ii;
for(ii = ; ii < tt; ii++)
{
printf("0x%0x ", (BYTE)b[ii]);
}
printf("\n\n");
unsigned long readLen = MAX_PATH;
char filePath[MAX_PATH] = {};
if(getRegeditConfig_STR(HKEY_CURRENT_USER, REG_SOFT_KEY, key_file_dlg_choose_logo, filePath, &readLen))
{
printf("filePath:'%s'\n", filePath);
printf("len-utf8:%d\n\n", readLen);
int ii;
for(ii = ; ii < readLen; ii++)
{
printf("0x%0x ", (BYTE)filePath[ii]);
}
printf("\n\n");
char *p = utf8ToGBK(filePath, &tt);
printf("filePath-gbk:'%s'\n", p);
printf("len-gbk:%d\n", tt);
//int ii;
for(ii = ; ii < tt; ii++)
{
printf("0x%0x ", (BYTE)b[ii]);
}
printf("\n");
}
system("pause");
exit();

将gbk字符串转换成utf-8,存储到注册表中后,再次从注册表读取转换成gbk,有问题!!!的更多相关文章
- mssql字符串分割后的值,把表中不存在的插入表中
字符串分割后的值,把表中不存在的插入表中 --供大家参考 使用场景,自行思考…… --创建表tb1 Create table tb1 ( cola int, colb ) ) --插入数据 inser ...
- SQL将表中某一类型的一列拼接成一行
SELECT TypeName ,(SELECT ','+ UserName FROM [ContainerMembers] t WHERE TypeName= aa.TypeName FOR XML ...
- [原创]SQL 把表中某一个列按照逗号拼接成一行
在我们开发的过程中,难免遇到一种场景,把某个表中的的某个列的值拼接成用逗号隔开的一行数据 如图:我们把UserId列拼接成一行数据 -------> 为此我写了一个存储过程来解决此类问题. -- ...
- 数据表设计:多对多关系E-R图转换——中间表
链接:https://blog.csdn.net/vainfanfan/article/details/80568784 链接2:https://www.cnblogs.com/hiwangzi/p/ ...
- SQL 把表中字段存储的逗号隔开内容转换成列表形式
原文:[原创]SQL 把表中字段存储的逗号隔开内容转换成列表形式 我们日常开发中,不管是表设计问题抑或是其他什么原因,或多或少都会遇到一张表中有一个字段存储的内容是用逗号隔开的列表. 具体效果如下图: ...
- [原创]SQL 把表中字段存储的逗号隔开内容转换成列表形式
我们日常开发中,不管是表设计问题抑或是其他什么原因,或多或少都会遇到一张表中有一个字段存储的内容是用逗号隔开的列表. 具体效果如下图: ------> 从左边图转换成右边图,像这种需求,我们难免 ...
- C字符串和C++中string的区别 &&&&C++中int型与string型互相转换
在C++中则把字符串封装成了一种数据类型string,可以直接声明变量并进行赋值等字符串操作.以下是C字符串和C++中string的区别: C字符串 string对象(C++) 所需的头文件名称 ...
- C#编程中的Image/Bitmap与base64的转换及 Base-64 字符数组或字符串的长度无效问题 解决
最近用base64编码传图片遇到了点问题,总结下. 首先总结下base64编码的逻辑,来自网络:https://www.cnblogs.com/zhangchengye/p/5432276.html ...
- sql server 关于表中只增标识问题 C# 实现自动化打开和关闭可执行文件(或 关闭停止与系统交互的可执行文件) ajaxfileupload插件上传图片功能,用MVC和aspx做后台各写了一个案例 将小写阿拉伯数字转换成大写的汉字, C# WinForm 中英文实现, 国际化实现的简单方法 ASP.NET Core 2 学习笔记(六)ASP.NET Core 2 学习笔记(三)
sql server 关于表中只增标识问题 由于我们系统时间用的过长,数据量大,设计是采用自增ID 我们插入数据的时候把ID也写进去,我们可以采用 关闭和开启自增标识 没有关闭的时候 ,提示一下错 ...
随机推荐
- java集合(1)
java集合类存放于java.util包里,只能存放对象,存放的是对象的引用,可以是不同类型,不限数量的数据类型. 顶层接口:Iterator(迭代器),Map Iterator:核心方法hasNex ...
- vue click事件 v-on:click
v-on:click <!DOCTYPE html> <html lang="en"> <head> <meta charset=&quo ...
- ThinkPHP 5.0/5.1 自定义404界面的配置
★ 背景还要啥背景,就是觉得不可能用框架自带的 404 界面呗.可能跟之前的版本配置方法有点区别,在此做一下简单的笔记 框架:ThinkPHP 5.1,ThinkPHP5.0.20 ★ 配置过程♩. ...
- 微信小程序 canvas 绘制圆形状
page({ // 绘制canvas drawCanvas:function(){ const ctx = wx.createCanvasContext('poster') // 画圆形二维码 thi ...
- 学习RenderScript,以此来修改LiveWallpaper
先留个坑,花5天的时间来填满.
- 2019-1-17 前言 C#高级编程(第11版)
C#已更新为更快的速度.主要版本7.0是2017年3月发布,次要版本7.1和7.2很快发布在2017年8月和2017年12月.通过项目设置,您可以与每个应用程序一起分发,是开源的,不可用仅适用于Win ...
- vue的生命周期的理解
Vue实例有一个完整的生命周期,也就是从开始创建.初始化数据.编译模板.挂载Dom.渲染→更新→渲染.销毁等一系列过程,我们称这是Vue的生命周期.通俗说就是Vue实例从创建到销毁的过程,就是生命周期 ...
- go语言打造p2p网络
传送门: 柏链项目学院 就像1000个人眼中有1000个哈姆雷特一样,每个人眼中的区块链也是不一样的!作为技术人员眼中的区块链就是将各种技术的融合,包括密码学,p2p网络,分布式共识机制以及博弈论等. ...
- 如何使用java validation api进行参数校验----Hibernate-Validation
在日常开发中,Hibernate Validator经常用来验证bean的字段,基于注解,方便快捷高效. 1. Bean Validation 中内置的 constraint 注解 ...
- java邮箱发送
一.为何要使用邮箱发送 相信大家在日常工作生活中少不了和邮件打交道,比如我们会用邮件进行信息交流,向上级汇报日常工作:邮件发送的原理是什么?邮件是如何发送的呢?本系列教程将会讲解邮件如何申请可用jav ...