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

wordpress错误信息流广告优化师培训

wordpress错误,信息流广告优化师培训,长沙市住房和城乡建设局网站,廊坊建设局网站上当了。 最近程序要和 Jscript / activex 脚本通信。 ActiveX这玩意,导出文件,如果是UTF8导出,会出现莫名异常:写一半直接退出。或许是系统语言设置的问题。 但是切换为utf16(unicode)导出就没有问题&a…

上当了。

最近程序要和 Jscript / activex 脚本通信。

ActiveX这玩意,导出文件,如果是UTF8导出,会出现莫名异常:写一半直接退出。或许是系统语言设置的问题。

但是切换为utf16(unicode)导出就没有问题:

OpenTextFile method (Visual Basic for Applications) | Microsoft Learn

var fso = new ActiveXObject("Scripting.FileSystemObject");
var file = fso.CreateTextFile("", true, true );

然而蛋疼还没有完。在C++程序中,UTF8文件直接用 stf::ifstream 读进来就可以。

std::ifstream file(L"");if (file.is_open()) {std::string line;while (std::getline(file, line)) {...}}file.close();

但 UTF16 却不能直接用 std::wifstream 读取。 StackOverflow 上有人说,需要告知 std::wifstream 编码格式。 c++ 标准库才会跳过bom、进行逐行解码。

有人整理如下:(18)用std::wifstream读取Unicode文本-CSDN博客

结果第二天就出现问题。一些特殊表情符号直接空白(比如:🍓)。或许是,这个办法不支持UTF16的surrogate pair,四个字节的符号。

我勒个去,编码直接变没了!

震惊!

立马鞭策chatgpt,让他写个直接读到 TCHAR* 数组里的替代办法,一点问题没有!c++还真是蛋疼啊~

TCHAR* ReadUTF16File(const TCHAR* filePath) {HANDLE hFile = CreateFile(filePath, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);if (hFile == INVALID_HANDLE_VALUE) {// Handle file opening errorreturn NULL;}DWORD fileSize = GetFileSize(hFile, NULL);TCHAR* buffer = new TCHAR[fileSize / sizeof(TCHAR) + 1];DWORD bytesRead = 0;ReadFile(hFile, buffer, fileSize, &bytesRead, NULL);buffer[fileSize / sizeof(TCHAR)] = '\0';CloseHandle(hFile);return buffer;
}
std::vector<std::wstring> _args;
QkString ln;if(StrCmpN(_args[i].c_str(), L"-loadArgsW", 10)==0) {TCHAR* all = ReadUTF16File(_args[i].c_str()+11)+1;TCHAR* current = all;TCHAR* next = nullptr;while ((next = _tcschr(current, _T('\n'))) != nullptr) {// Process the line from current to nextln.Empty();ln.Append(current, next-current);//*next = _T('\0');//_tprintf(_T("%s\n"), current);*next = _T('\n'); // Restore the newline charactercurrent = next + 1; // Move to the character after the newlineln.Trim();_args.push_back(ln.GetData());}if (*current != _T('\0')) {//_tprintf(_T("%s\n"), current);ln = current;ln.Trim();_args.push_back(ln.GetData());}}

这说明,程序里面 TCHAR* 字符串就是UTF16编码,或者说是 IE / JScript / ActiveX 认可的 unicode 编码模式,不需要 std::wifstream 多此一举地解码,直接读取到内存即可。

http://www.tj-hxxt.cn/news/33104.html

相关文章:

  • 加强政府网站建设和管理网站优化提升排名
  • 建设购物网站流程网络营销计划的七个步骤
  • 网站区域名怎么注册怎样看网页的友情链接
  • 西安制作网站的电话北京自动网络营销推广
  • 鄱阳有做百度网站的网站seo优化排名
  • 有关大学生做兼职的网站有哪些百度seo关键词优化费用
  • 在北京做家教的网站爱站网 关键词挖掘工具
  • wordpress汇入限制seo关键词推广话术
  • 长春网站制作工具三十个知识点带你学党章
  • 装饰公司网站建设方案如何建立网页
  • 做图网站有哪些东西吗软文写作营销
  • 初中做语文题的网站sem培训学校
  • 怎么建设游戏平台网站武威网站seo
  • 潍坊做网站的公司在线crm管理系统
  • 改域名 wordpress中山seo关键词
  • 惠州做网站 百度优化软文写作平台
  • 做新媒体每天必看的网站网站推广的6个方法是什么
  • 保定网络公司电话网站优化seo
  • 亚马逊fba头程物流公司seo研究所
  • html5 做手机网站网站关键词在哪里看
  • 领券购买网站是怎么做的广告代发平台
  • 模板网站多少钱seo是什么职位简称
  • wordpress如何加数据库seo和sem是什么
  • 合肥网站建设网新官方app下载安装
  • 国内知名的wordpress网站怎样在百度上做广告推广
  • 模板网站免费建站优化措施最新回应
  • 建立自己的网站需要服务器吗可以看国外网站的浏览app
  • 网站开发常用语言比较seo网站编辑是做什么的
  • 做网站要搭建本地服务器么建立网站的流程
  • 从化区住房和建设局网站黑龙江新闻