当前位置: 首页 > news >正文

青岛城阳网站设计学python网站开发

青岛城阳网站设计,学python网站开发,wordpress是建站工具 还是语言,工商企业信息查询网站1、UTF-8 和 GBK 的区别 GBK#xff1a;通常简称 GB #xff08;“国标”汉语拼音首字母#xff09;#xff0c;GBK 包含全部中文字符。 UTF-8 #xff1a;是一种国际化的编码方式#xff0c;包含了世界上大部分的语种文字#xff08;简体中文字、繁体中文字、英文、… 1、UTF-8 和 GBK 的区别 GBK通常简称 GB  “国标”汉语拼音首字母GBK 包含全部中文字符。 UTF-8 是一种国际化的编码方式包含了世界上大部分的语种文字简体中文字、繁体中文字、英文、日文、韩文等语言也兼容 ASCII 码。UTF-8 则包含全世界所有国家需要用到的字符。 2、UTF-8 和 GBK 的作用 这两种编码方式的的作用就是在不同的应用环境中使用特定的编码方式 如果输入字符编码是UTF-8如果想要将信息转换为汉字呈现在显示器上就必须进行GBK转码操作才能在显示屏上看到信息 如果输入字符编码是GBK,如果想要在系统操作中让嵌入式设备或者编程环境认知它就需要进行UTF-8转码操作。 3、UTF-8 和 GBK 之间如何转换 在字符转换的过程中二者不可以直接进行转换必须借助于unicode 3.1、UTF-8转GBK UTF-8——unicode——GBK 3.2、GBK转UTF-8 GBK——unicode——UTF-8 4、UTF-8 转GBK ——C代码 4.1、引入Win32 因为linux是32位的所以首先需要引入Winsows.h库附带引入iconv.h库 #includeiostream #includestring #includestring.h #ifdef _WIN32 #includeWindows.h #else #includeiconv.h #endif // _WIN32 using namespace std; #ifndef _WIN32 4.2、定义函数 static size_t Convert(char* from_cha, char* to_char, char* in, size_t inlen, char* out, size_t outlen) {//转换上下文iconv_t cd;cd iconv_open(to_char, from_cha);if (cd 0){return -1;}memset(out, 0, outlen);char** pin in;char** pout out;//返回转换字节数的数量但是转GBK的时候经常不正确 0就是成功size_t re iconv(cd, pin, inlen, pout, outlen);if (cd ! 0){iconv_close(cd);}cout re (int) re endl;return re; } 4.2.1、iconv库介绍 iconv库——linux的转换字符编码库 iconv_open()——作用:从字符编码from_char转换为to_char iconv_open(to_char, from_cha); iconv_close():—— 关闭参数所指定的转换描述符  iconv_close(cd); memset库——memset是C库函数 memset(out, 0, outlen); out -- 指向要填充的内存块。0 -- 要被设置的值。该值以 int 形式传递但是函数在填充内存块时是使用该值的无符号字符形式。outlen -- 要被设置为该值的字符数。 4.3、统计转换后的字节数 使用内置函数 现在格式是UTF8即CP_UTF8. int len MultiByteToWideChar(CP_UTF8, //转换的格式0, //默认的转换方式data, //输入的字节-1, //输入的字符串大小 -1找\0结束 自己去算0, //输出不输出统计转换后的字节数0 //输出的空间大小); 4.4、用wtring存储数据并为其分配大小 wstring udata; //用wstring存储的 udata.resize(len);//分配大小 4.5、UTF-8转unicode。 将数据写进去将数据强转为wchar_t类型适用于windows和linux。 MultiByteToWideChar(CP_UTF8, 0, data, -1, (wchar_t*)udata.data(), len); 4.6、unicode转GBK。 现在格式转成GBK即CP_ACP。和UTF-8的参数数量不一样哦 len WideCharToMultiByte(CP_ACP, 0, (wchar_t*)udata.data(), -1, 0, 0,0, //失败替代默认字符0 //是否使用默认替代 0 false); 4.7、配置字符大小转成GBK utf8.resize(len); WideCharToMultiByte(CP_ACP, 0, (wchar_t*)udata.data(), -1, (char*)utf8.data(), len, 0, 0); 4.8、 UTF-8转GBK完整代码 其他都是一样的只不过加了 #ifdef _WIN32  ...... ..... #else //linuxre.resize(1024);int inlen strlen(data);cout inlen inlen endl;Convert((char*)utf-8, (char*)gbk, (char*)data, inlen, (char*)re.data(), re.size());int outlen strlen(re.data());re.resize(outlen); #endif #endif string UTF8ToGBK2(const char* data) {string re ;//1、UTF8 先要转为unicode windows utf16 #ifdef _WIN32//1.1 统计转换后的字节数int len MultiByteToWideChar(CP_UTF8, //转换的格式0, //默认的转换方式data, //输入的字节-1, //输入的字符串大小 -1找\0结束 自己去算0, //输出不输出统计转换后的字节数0 //输出的空间大小);if (len 0){return re;}wstring udata; //用wstring存储的udata.resize(len);//分配大小//开始写进去MultiByteToWideChar(CP_UTF8, 0, data, -1, (wchar_t*)udata.data(), len);//2 unicode 转 GBK 转成unicodelen WideCharToMultiByte(CP_ACP, 0, (wchar_t*)udata.data(), -1, 0, 0,0, //失败替代默认字符0 //是否使用默认替代 0 false);if (len 0){return re;}re.resize(len);WideCharToMultiByte(CP_ACP, 0, (wchar_t*)udata.data(), -1, (char*)re.data(), len, 0, 0); #elsere.resize(1024);int inlen strlen(data);cout inlen inlen endl;Convert((char*)utf-8, (char*)gbk, (char*)data, inlen, (char*)re.data(), re.size());int outlen strlen(re.data());re.resize(outlen); #endifreturn re; } 5、GBK  转 UTF-8 ——C代码 5.1、统计转换后的字节数 //1.1 统计转换后的字节数int len MultiByteToWideChar(CP_ACP, //转换的格式0, //默认的转换方式data, //输入的字节-1, //输入的字符串大小 -1找\0结束 自己去算0, //输出不输出统计转换后的字节数0 //输出的空间大小); 5.2、用wstring存储数据并为其分配大小  wstring udata; //用wstring存储的 udata.resize(len);//分配大小 5.3、GBK转unicode  //开始写进去MultiByteToWideChar(CP_ACP, 0, data, -1, (wchar_t*)udata.data(), len); 5.4、unicode转UTF-8 //2 unicode 转 utf8len WideCharToMultiByte(CP_UTF8, 0, (wchar_t*)udata.data(), -1, 0, 0,0, //失败替代默认字符0 //是否使用默认替代 0 false); 5.5、配置字符大小转成UTF-8 GBK.resize(len); WideCharToMultiByte(CP_UTF8, 0, (wchar_t*)udata.data(), -1, (char*)GBK.data(), len, 0, 0); 5.6、GBK 转UTF-8 完整代码 其他都是一样的只不过加了 #ifdef _WIN32 ..... ..... #else //linuxre.resize(1024);int inlen strlen(data);Convert((char*)gbk, (char*)utf-8, (char*)data, inlen, (char*)re.data(), re.size());int outlen strlen(re.data());re.resize(outlen); #endif string GBKToUTF82(const char* data) {string re ; #ifdef _WIN32//1、GBK转unicode//1.1 统计转换后的字节数int len MultiByteToWideChar(CP_ACP, //转换的格式0, //默认的转换方式data, //输入的字节-1, //输入的字符串大小 -1找\0结束 自己去算0, //输出不输出统计转换后的字节数0 //输出的空间大小);if (len 0){return re;}wstring udata; //用wstring存储的udata.resize(len);//分配大小//开始写进去MultiByteToWideChar(CP_ACP, 0, data, -1, (wchar_t*)udata.data(), len);//2 unicode 转 utf8 转成unicodelen WideCharToMultiByte(CP_UTF8, 0, (wchar_t*)udata.data(), -1, 0, 0,0, //失败替代默认字符0 //是否使用默认替代 0 false);if (len 0){return re;}re.resize(len);WideCharToMultiByte(CP_UTF8, 0, (wchar_t*)udata.data(), -1, (char*)re.data(), len, 0, 0); #elsere.resize(1024);int inlen strlen(data);Convert((char*)gbk, (char*)utf-8, (char*)data, inlen, (char*)re.data(), re.size());int outlen strlen(re.data());re.resize(outlen); #endifreturn re; } 6、linux虚拟机测试 6.1、创建文件夹 mkdir test_GBK_UTF-8 6.2、进入文件夹 cd test_GBK_UTF-8 6.3、创建test_GBK_UTF-8.cpp文件 vim test_GBK_UTF-8.cpp将刚才代码放进去按下esc键盘输入  :wq (有一个呦)回车 6.4、输入 //g就是运行环境是C g test_GBK_UTF-8.cpp -o test_GBK_UTF-8 6.5、执行 ./test_GBK_UTF-86.6、结果 如果不转码会输出乱码 7、完整代码——基于linux //GBK转utf-8 #includeiostream #includestring #includestring.h #ifdef _WIN32 #includeWindows.h #else #includeiconv.h #endif // _WIN32 using namespace std; #ifndef _WIN32 static size_t Convert(char* from_cha, char* to_char, char* in, size_t inlen, char* out, size_t outlen) {//转换上下文iconv_t cd;cd iconv_open(to_char, from_cha);if (cd 0){return -1;}memset(out, 0, outlen);char** pin in;char** pout out;//返回转换字节数的数量但是转GBK的时候经常不正确 0就是成功size_t re iconv(cd, pin, inlen, pout, outlen);if (cd ! 0){iconv_close(cd);}cout re (int) re endl;return re; } #endif // !_WIN32string UTF8ToGBK(const char* data) {string re ;//1、UTF8 先要转为unicode windows utf16 #ifdef _WIN32//1.1 统计转换后的字节数int len MultiByteToWideChar(CP_UTF8, //转换的格式0, //默认的转换方式data, //输入的字节-1, //输入的字符串大小 -1找\0结束 自己去算0, //输出不输出统计转换后的字节数0 //输出的空间大小);if (len 0){return re;}wstring udata; //用wstring存储的udata.resize(len);//分配大小//开始写进去MultiByteToWideChar(CP_UTF8, 0, data, -1, (wchar_t*)udata.data(), len);//2 unicode 转 GBK 转成unicodelen WideCharToMultiByte(CP_ACP, 0, (wchar_t*)udata.data(), -1, 0, 0,0, //失败替代默认字符0 //是否使用默认替代 0 false);if (len 0){return re;}re.resize(len);WideCharToMultiByte(CP_ACP, 0, (wchar_t*)udata.data(), -1, (char*)re.data(), len, 0, 0); #elsere.resize(1024);int inlen strlen(data);cout inlen inlen endl;Convert((char*)utf-8, (char*)gbk, (char*)data, inlen, (char*)re.data(), re.size());int outlen strlen(re.data());re.resize(outlen); #endifreturn re; }string GBKToUTF8(const char* data) {string re ; #ifdef _WIN32//1、GBK转unicode//1.1 统计转换后的字节数int len MultiByteToWideChar(CP_ACP, //转换的格式0, //默认的转换方式data, //输入的字节-1, //输入的字符串大小 -1找\0结束 自己去算0, //输出不输出统计转换后的字节数0 //输出的空间大小);if (len 0){return re;}wstring udata; //用wstring存储的udata.resize(len);//分配大小//开始写进去MultiByteToWideChar(CP_ACP, 0, data, -1, (wchar_t*)udata.data(), len);//2 unicode 转 utf8 转成unicodelen WideCharToMultiByte(CP_UTF8, 0, (wchar_t*)udata.data(), -1, 0, 0,0, //失败替代默认字符0 //是否使用默认替代 0 false);if (len 0){return re;}re.resize(len);WideCharToMultiByte(CP_UTF8, 0, (wchar_t*)udata.data(), -1, (char*)re.data(), len, 0, 0); #elsere.resize(1024);int inlen strlen(data);Convert((char*)gbk, (char*)utf-8, (char*)data, inlen, (char*)re.data(), re.size());int outlen strlen(re.data());re.resize(outlen); #endifreturn re;return re; }int main() {std::cout Hello World! 测试\n;//1、测试utf-8转GBK//cout UTF8ToGBK(u8测试UTF-8转GBK) endl;string in u8测试UTF-8转GBK;cout 输入 utf in endl;string gbk UTF8ToGBK2(in.c_str());cout gbk gbk endl;cout GBKToUTF82(gbk.c_str()) endl;system(pause);return 0; }
http://www.hkea.cn/news/14410605/

相关文章:

  • 淘客网站后台怎么做虚拟主机空间 配置 网站
  • 赣州市规划建设局网站改门户网站建设教程
  • 怎么搭建网站平台ui设计一个页面多少钱
  • 我网站关键词太多广告推广语
  • 做网站图片ps用哪种字体国外在线设计平台
  • 自己网站建设问题wordpress如何添加二级菜单
  • 桐梓网站开发网站建设开票内容
  • 怎么查看一个网站是谁做的建筑设计图片
  • 哪里有卖自己做的网站怎样做自己的销售网站
  • 上海网站建设百度推广公司WordPress公众号扫码登录
  • 专业制作外贸网站中国铁路建设监理协会官方网站
  • 网站建设及管理python做软件界面
  • 网站建设忄金手指快速成都锦江规划建设局网站
  • 副食店年报在哪个网站做红杉树装修公司
  • php网站开发套模板正在建设中的网站可算违规
  • 成都网站建设 erp主机服务器网站 怎么做
  • 炫酷响应式网站设计抖音广告投放收费标准
  • 网站建设与管理的心得wordpress content.php
  • 在线捏脸网站需要多少钱湖北app定制开发
  • 可视化网站建设软件玉田做网站
  • 网站制作好在百度里可以搜到吗wordpress 等待响应
  • 在哪个网站做整形简述网站推广的方式
  • 免费网站个人注册10大物业管理系统
  • 杭州 商城网站开发wordpress编辑器 模板
  • 自己做个网站怎么赚钱网站开发专业术语大全
  • 创建网站的基本步骤企业所得税避税方法
  • 在建设局网站备案怎么弄天台县网站建设哪家好
  • 工作网站建设logo在线生成器免费
  • 什么是网站反向链接郴州网页定制
  • 黄页88网推广服务狼雨seo网站