1、编辑器设置
如果代码里包含中文等Unicode字符,会有警告信息:
warning C4819: The file contains a character that cannot be represented in the current code page (936). Save the file in Unicode format to prevent data loss
我们将代码文件的编码改为带BOM的UTF-8。
tools -> options -> text editor -> behavior -> File Encoding -> UTF8
2、界面的中文字符显示乱码
两种方式,一种方法是使用QStringLiteral包裹中文字符,例如:
_button.setText(QStringLiteral("选择一个文件"));
另外一种方法是在代码文件中添加声明,就不必使用QStringLiteral包裹了:
#pragma execution_character_set("utf-8")
3、读取文本文件
从文件里读入一段文字到QByteArray,直接显示的话很可能由于编码格式错误而导致乱码。但又无法简单的判断出其编码格式,对于中国用户而言,一般是GBK或UTF-8。
QByteArray line = file.readLine();
QString convertStr = QTextCodec::codecForName("GBK")->toUnicode(line);
_textedit.insertPlainText(convertStr);