方法一
如果文件不多的话,可以手动一个一个进行修改。添加 “高级保存选项”
手动改为UTF-8
方法二
使用editorconfig文件,统一编码问题。通过:“工具” > “选项”>"文本编辑器" > "C/C++" > "代码样式" 选择 “基于代码样式设置生成 EditorConfig 文件”。
在.editorconfig文件中添加以下代码,主要是charset = utf-8 ,其他的看自己需要。
[*]
end_of_line = lf # 行尾 UNIX 格式 LF
charset = utf-8 # 文件编码字符集为 UTF-8
trim_trailing_whitespace = true # 删除文件末尾空格
insert_final_newline = true # 末尾插入新行
indent_style = space # 以空格代替 tab
indent_size = 4 # 代替 tab 的空格数量
需要重启VS,使用这种方法之后,每个文件保存的时候会自动转成UTF-8格式。但是这两种都是将当前文件进行转码
其他的已有文件转码的话,可以用脚本来实现:“win + x" 打开“windows powershell (管理员)”
将以下脚本添加到powershell中
Get-ChildItem -Path "F:\Learn\Blaster\Blasters" -Filter *.cpp,*.h -Recurse | ForEach-Object {
$content = Get-Content -Path $_.FullName -Encoding Default -Raw
[System.IO.File]::WriteAllText($_.FullName, $content, [System.Text.Encoding]::UTF8)
}
将:“F:\Learn\Blaster\Blasters”修改成自己的项目路径
运行脚本即可完成转码了。
PS:
在使用 PowerShell 脚本批量转换文件编码之后出现中文乱码,可能是由于原始文件的编码格式与目标编码(UTF-8)不兼容导致的。在转换编码时,需要确保正确读取原始文件的编码,并将其正确写入为 UTF-8 编码。常见的编码格式包括 ANSI(例如 GB2312、GBK)和 UTF-16.