以Unicode(UTF-16 LE)编码保存文本

1. 以二进制方式打开文件,写入BOM头

FILE* pFile = nullptr;
_wfopen_s(&pFile, szLogFilePath, L"wb");
// UTF-16 LE BOM : FFFE
unsigned char bom[] = { 0xFF, 0xFE };
if (pFile)
{
	fwrite(bom, sizeof(unsigned char), sizeof(bom), pFile);
	fclose(pFile);
}

2. 以Unicode方式打开文件,写入内容

FILE* pFile = nullptr;
wchar_t name[] = L"‎中國哲學書電子化計劃";
_wfopen_s(&pFile, L"C:\\TEMP\\ChineseLetters.txt", L"a,ccs=UNICODE");
if (pFile)
{
	fwrite(name, sizeof(wchar_t), sizeof(name), pFile);
	fclose(pFile);
}

参考资料

  1. c-text-file-wont-save-in-unicode-it-keeps-saving-in-ansi
  2. fopen-s-wfopen-s
  3. 如何判断一个文本文件的编码
posted @   ,,,沙子,,,  阅读(2060)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
点击右上角即可分享
微信分享提示