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

天津企业网站设计报价搜索排名优化策划

天津企业网站设计报价,搜索排名优化策划,佛山市seo推广哪家好,苏州 营销型网站 高端网站原版xlslib输出UTF8汉字有误,我在网上找到这个古老的帖子修改开源xlslib使得支持输出UTF8中文Excel文件内容不乱码, 它自定义了2个指定UTF8编码的重载label()函数。 照做后,第一步发现编译有错 In file included from ./xlslib.h:53,from xlslib/cbridg…

原版xlslib输出UTF8汉字有误,我在网上找到这个古老的帖子修改开源xlslib使得支持输出UTF8中文Excel文件内容不乱码, 它自定义了2个指定UTF8编码的重载label()函数。
照做后,第一步发现编译有错

In file included from ./xlslib.h:53,from xlslib/cbridge.cpp:50:
./xlslib/sheetrec.h:339:72: error: 'ustring' in namespace 'std' does not name a type; did you mean 'wstring'?339 | cell_t* label(int code, unsigned16_t row, unsigned16_t col, const std::ustring& strlabel, xf_t* pxformat = NULL);|                                                                        ^~~~~~~|                                                                        wstring

观察同一个函数的其他重载声明,ustring命名空间不是std而是xlslib_strings,照着改成如下声明后,make通过。在xlslib/xlslib/src/.libs中生成了新的动态链接库文件。

		cell_t* label(unsigned32_t row, unsigned32_t col,const xlslib_strings::ustring& strlabel, xf_t* pxformat = NULL);
/*
* 在xlslib/src/sheetrec.h中增加如下代码
*/
cell_t* label(int code, unsigned16_t row, unsigned16_t col, const xlslib_strings::ustring& strlabel, xf_t* pxformat = NULL);

直接用ws->label(UTF8,0, col, "Col_中文");输出的仍是乱码。需要在字符串前加L修饰符,指定它是宽字符串才能输出汉字,但L"Col_汉字" + std::to_string(col)编译又会报错。

在https://www.runoob.com/cplusplus/cpp-libs-codecvt.html 教程网站上找到了std::wstring_convert转换器,写成如下就能正确输出UTF8汉字和数字混合字符串了。

        // 写入标题enum { UTF8, GBK };for (int col = 0; col < cols; ++col) {//ws->label(UTF8,0, col, L"Col_中文");std::wstring_convert<std::codecvt_utf8_utf16<wchar_t>> converter;// 原始的 UTF-8 字符串//std::string narrow_string = "Hello, World!";// 转换为 UTF-16 宽字符串//std::wstring wide_string = converter.from_bytes(narrow_string);std::wstring wide_string = converter.from_bytes(("Col_汉字" + std::to_string(col)).c_str());ws->label(UTF8,0, col, wide_string);}

为防止原帖不可访问。将它的改写代码抄录如下,命名空间已修改

/*
* 在xlslib/src/sheetrec.h中增加如下代码
*/
cell_t* label(int code, unsigned16_t row, unsigned16_t col, const xlslib_strings::ustring& strlabel, xf_t* pxformat = NULL);
cell_t* label(int code, unsigned16_t row, unsigned16_t col, const char* strlabel, xf_t* pxformat = NULL);/*
* 在xlslib/src/sheetrec.cpp中增加如下代码
*/
cell_t* worksheet::label(int code, unsigned16_t row, unsigned16_t col,const ustring& strlabel, xf_t* pxformat)
{enum { UTF8, GBK };u16string str16;label_t* lbl;u16string::const_iterator u16begin, u16end;ustring::const_iterator ubegin, uend;size_t len;if (code == UTF8) {len = strlabel.length();str16.reserve(len);ubegin = strlabel.begin();uend = strlabel.end();while(ubegin != uend) {unichar_t c;c = *ubegin++;str16.push_back(c);       }lbl = new label_t(m_GlobalRecords, row, col, str16, pxformat);AddCell((cell_t*)lbl);return (cell_t*)lbl;} else {return NULL;}
}
cell_t* worksheet::label(int code, unsigned16_t row, unsigned16_t col,const char* strlabel, xf_t* pxformat)
{enum { UTF8, GBK };unsigned16_t u16;u16string str16;label_t* lbl;wstring::const_iterator wbegin, wend;size_t len;if (code == UTF8) {if (strlabel == NULL) {return NULL;} else {len = strlen(strlabel);wchar_t wcs[len+1];mbstowcs(wcs, strlabel, len+1);len = wcslen(wcs);for (int i = 0; i < len; i++) {u16 = wcs[i];str16.push_back(u16);}}lbl = new label_t(m_GlobalRecords, row, col, str16, pxformat);AddCell((cell_t*)lbl);return (cell_t*)lbl;} else {return NULL;}
}
http://www.dinnco.com/news/57881.html

相关文章:

  • 濮阳家电网站建设常见的网络营销方式有哪些
  • 黑龙江省建设会计协会网站最佳bt磁力搜索引擎
  • 华为荣耀官网手机商城商丘seo公司
  • 网页价格表上海关键词排名优化公司
  • 宁波网站优化价格电商培训班
  • 哪个网站可以查公司注册信息百度网盘首页
  • 做公司网站要多久seo排名
  • 网站建站建设上海黔文信息科技有限公司30全网品牌推广公司
  • 爱网聊的男人是什么心理企业网站seo优化公司
  • 外贸网站制作百度提交入口网址在哪
  • 提供网站建设空间网络广告人社区官网
  • 成都pc网站建设网页设计与制作用什么软件
  • erp合同管理系统seo全称
  • 西安哪些做网站的公司百度一下你就知道首页官网
  • 网页设计与制作基础知识总结厉害的seo顾问
  • 苏州网站制作搭建海外推广方法有哪些
  • 网站建设的知识点有哪些百度pc端首页
  • 旅行社网站模板郑州客串seo
  • 电力建设专家答疑在哪个网站如何做网页设计
  • 做 专而精 的网站seo中文意思是
  • 自己做简单网站价格如何在手机上建立自己的网站
  • java 做网站的开源平台营销型企业网站有哪些平台
  • 番禺网站制作设计网站推广专家十年乐云seo
  • 做毕设的网站万广州网络推广seo
  • 自助建站公司经典软文推广案例
  • 湖州住房和城乡建设厅网站seo sem是啥
  • 河北建设厅八大员报名网站谷歌推广教程
  • 电子产品网站建设模板网站流量数据
  • 北京专业做网站网站关键词怎么添加
  • 怎么制作网站镜像营销推广软件