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

如何制作手机免费网站模板百度网站地图文件

如何制作手机免费网站模板,百度网站地图文件,搭建企业网站需要什么,柯桥区网站建设上当了。 最近程序要和 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.yayakq.cn/news/24901/

相关文章:

  • 公司的网站建设与维护专业网站设计建设
  • 广州市建设交易中心网站首页丰都网站建设哪家好
  • 百度云免费做网站广州网站定制开发方案
  • 哪里可以学网站建设网站sem怎么做
  • ICP备案网站服务内容网站文件夹权限
  • 邯郸做网站网络公司福建建设人才市场网站
  • 小程序怎么做电影网站html做网站的设计
  • 湛江网站建设方案咨询海拉尔网站建设sjteam
  • 北京招聘网站建设国外产品展示网站源码
  • 后台做网站的题松江信息科技有限公司网站
  • 邢台做网站找谁网站的优点和缺点
  • 北京最大的火车站做网站应该学什么语言
  • 网站推广软件免费观看想在自己的网站做支付
  • 佛山个人建站模板用php做网站的新闻
  • 什么是企业营销型网站?推广自己的网站
  • 青海 网站开发 app网站如何做关键词优化
  • 西昌市做网站的如何在网站上做支付功能
  • 网站建设项目团队主机托管名词解释
  • 做淘宝客网站好搭建吗南京网站建设咨询
  • 有什么网站可以接淘宝设计单做网站建设技术网站建设
  • 开发网站的流程步骤网站如何后台管理
  • 深圳微信网站运营ui培训课程内容
  • 网站psd广东搜索seo哪家强
  • asp制作网站wordpress 判断页面id
  • 服饰类行业_如果要建设网站_说明其建站流程.企业网站建设任务书
  • 网站免费建站2知识付费网站源码下载
  • 无锡网站建设首选捷搜网站做一样没有侵权吧
  • 期末成绩管理网站开发背景营销企业
  • 网站安全建设进展情况东丽做网站公司
  • 在哪个网站开发外贸业务广东网站制作公司排名