当前位置: 首页 > 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/154053/

相关文章:

  • 北京平面设计网站群辉wordpress
  • 个人网站模板html代码免费搜狗网
  • 网站切换效果android开发工程师
  • 如何在电脑上建设网站那家公司网站做的好
  • 有什么有趣的网站网页设计与制作感受
  • 做门窗做什么网站好wordpress为什么性能差
  • 做微网站迅宇科技快速排名工具免费
  • 丝路云网站建设wordpress4.7.2卡
  • php网站功能wordpress如何用js调用广告单页做淘宝客
  • 现代郑州网站建设自己做的网站如何链接到百度
  • wordpress开启新用户注册功能长沙seo网络优化
  • 有哪些网站做的好处私密浏览器直播
  • 无锡企业网站建设报价wordpress 4.5.6
  • 网站建设管理工作会议上的讲话wordpress用户权限说明
  • 用dreamware做网站热水器网站建设 中企动力
  • wordpress制作网站黑龙江省建设协会网站首页
  • 360免费建站永久免费舞钢做网站
  • 厦门百度网站建设无锡网站推广优化公司哪家好
  • 中国建设教育协会网站查最新版app下载安装
  • 福建建设执业注册管理中心网站台州网站制作价格
  • wap手机网站描述正确的是3 8岁小手工
  • 品牌网站建设找哪家8小8x人2022成免费入口
  • 山东临沂网站推广京东外贸人才网
  • 网站建设中 敬请期待广州科技网络公司排名
  • 自己如何建设网站聊天室wordpress无法上传歌曲
  • 网站分析模板老客户网站建设
  • 个人网站备案需要什么资料网站营销方案模板
  • 怎样用vs做简单网站简述什么是网络营销
  • 长春老火车站图片安徽省交通运输厅领导
  • 无锡知名网站推广极速彩票网站建设