编译平台 VS2017
***提示错误:***文本后缀“”无效;未找到文文本运算符或文本运算符模板““
昨天晚上加班,着急回家,所以敲的特别快,一顿操作猛如虎,一运行,一堆错误,瞬间有点懵逼,结果一看全都是添加文字问题,上错误源码:
std::map<QString,QString> WinFontNameToFamilys;
WinFontNameToFamilys.insert(std::make_pair(QString::fromUtf8("宋体"), QString::fromUtf8("宋体")));
WinFontNameToFamilys.insert(std::make_pair(QString::fromUtf8("楷体"), QString::fromUtf8("楷体")));
WinFontNameToFamilys.insert(std::make_pair(QString::fromUtf8("黑体"), QString::fromUtf8("黑体")));
WinFontNameToFamilys.insert(std::make_pair(QString::fromUtf8("仿宋"), QString::fromUtf8("仿宋")));
WinFontNameToFamilys.insert(std::make_pair(QString::fromUtf8("微软雅黑 常规"), QString::fromUtf8("微软雅黑")));
WinFontNameToFamilys.insert(std::make_pair(QString::fromUtf8("微软雅黑 细体"), QString::fromUtf8("微软雅黑 Light")));
WinFontNameToFamilys.insert(std::make_pair(QString::fromUtf8("等线 常规"), QString::fromUtf8("等线")));
WinFontNameToFamilys.insert(std::make_pair(QString::fromUtf8("等线 细替"), QString::fromUtf8("等线 Light")));
就是这段代码,经查证,我坚决认为我map的使用方式是正确的,那么究竟是哪错了,比较奇怪的就是,这些添加的不是所有的都错,只有一部分会错,懵,当然,最后完美解决,
**原因:**创建的.cpp文件格式不是utf-8格式,导致无法识别部分中文,所以导致一部分出错
我也想到了这个原因,用win10自带的文本查看器修改了保存格式,但是依然不行,最后这样解决的
解决方法
1.在Visual Studio菜单栏上点击“文件”->“高级保存选项”,在“编码”下拉框选择“简体中文(GB2312)”,然后“确定”即可。
这个方法也是在百度上我找到的唯一的方法,但是我照此修改了之后,并不行,后面我修改成了另外一个格式 “Unicode(UTF-8无签名)” 制式后完美解决,如果修改成 “简体中文(GB2312)”格式不行,可以改成这个试试,再不行,就试试别的
下课!
对了,如果你的vs没有 高级保存选项,通过下面方法可以调出来:
单击“工具”|“自定义”命令,弹出“自定义”对话框。
单击“命令”标签,进入“命令”选项卡。
在“菜单栏”下拉列表中,选择“文件”选项。
单击“添加命令”按钮,弹出“添加命令”对话框。
在“类别”列表中,选择“文件”选项;在“命令”列表中,选择“高级保存选项”选项。
单击“确定”按钮,关闭“添加命令”对话框。
选中“控件”列表中的“高级保存选项”选项,单击“上移”或者“下移”按钮,调整该命令的位置。
单击“关闭”按钮,完成“高级保存选项”命令的添加操作。
下课!