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

广州模板建站多少钱wordpress是哪种服务器

广州模板建站多少钱,wordpress是哪种服务器,建立什么填词语,dedecms如何做网站上当了。 最近程序要和 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.sczhlp.com/news/104484/

相关文章:

  • 做设计用哪个素材网站ppt之家模板免费下载
  • leetcode 3541. 找到频率最高的元音和辅音 便捷
  • 匿名递归与不动点组合子
  • 专门做调查的网站广州营销型网站制作
  • 深圳微商城网站设计制作推广普通话写好规范字手抄报
  • 网站建设背景介绍广告优化是做什么的
  • 做网站的服务器要什么格式长春火车站位置
  • 做网站导航站的注意点做哪种网站流量上的快
  • dw做网站投票微信crm客户管理系统
  • 网站浮动代码岳阳网站建设哪家好
  • 医疗网站专题模板企通互联的网站建设失败
  • 湖南营销型网站建设公司排名福州网站建设加推广
  • wordpress 下载站模板敬请期待用英语怎么说
  • 百度提交网站收录入口很有设计感的企业网站
  • 大型门户网站设计解决方案有哪些做互联网项目的导航网站
  • 手机网站页面范例现在c 做网站用什么
  • 网站开发 博客北京京水建设集团有限公司网站
  • 乔拓云网站建设php网站空间支持
  • 站长工具关键词挖掘内蒙古app开发公司
  • 网站模板有什么用网站开发mvc架构
  • 揭阳装修网站建设久久建设集团有限公司
  • 建站行业的乱象做留言的网站
  • 网站超市系统 源码全案设计公司名字
  • 25.9.15
  • 二十八、共享内存多处理器的基本概念
  • 详细介绍:【ARMv7】系统复位上电后的程序执行过程
  • C#高级语法
  • wordpress打开html文件没有网站怎么做百度优化
  • 秦皇岛网站开发公司电话北京软件开发学校哪个好
  • 做asp网站的步骤如何比较网站