如何在QT流中将unicode转换为可打印字符串
我正在向文件和标准输出写入流,但我得到了如下某种编码: \u05ea\u05e7\u05dc\u05d9\u05d8 \u05e9\u05e1\u05d9\u05de\u05dc \u05e9\u05d9\u05e0\u05d5\u05d9 \u05d1\u05e1\u05d2\u05e0\u05d5\u05df \u05dc\u05d3\u05e2\u05ea\u05d9 \u05d0\u05dd\u05d0\u05e0\u05d9 \u05d6\u05d5\u05db\u05e8 \u05e0\u05db\u05d5\u05df如何在QT流中将unicode转换为可打印字符串,qt,encoding,character-encoding,Qt,Encoding,Character Encoding,我正在向文件和标准输出写入流,但我得到了如下某种编码: \u05ea\u05e7\u05dc\u05d9\u05d8 \u05e9\u05e1\u05d9\u05de\u05dc \u05e9\u05d9\u05e0\u05d5\u05d9 \u05d1\u05e1\u05d2\u05e0\u05d5\u05df \u05dc\u05d3\u05e2\u05ea\u05d9 \u05d0\u05dd\u05d0\u05e0\u05d9 \u05d6\u05d5\u05db\u05e8 \u05e
如何将其转换为可打印字符串?我不知道如何打印字符串,但这只是Unicode:
#include <QString>
#include <QFile>
#include <QDebug>
int main(int argc, char **argv)
{
QString s = "\u05ea\u05e7\u05dc\u05d9\u05d8 \u05e9\u05e1\u05d9\u05de\u05dc \u05e9\u05d9\u05e0\u05d5\u05d9 \u05d1\u05e1\u05d2\u05e0\u05d5\u05df \u05dc\u05d3\u05e2\u05ea\u05d9 \u05d0\u05dd \u05d0\u05e0\u05d9 \u05d6\u05d5\u05db\u05e8 \u05e0\u05db\u05d5\u05df";
QFile file1("1.txt");
if (!file1.open(QIODevice::WriteOnly | QIODevice::Text))
return 1;
QTextStream out(&file1);
out << s << "\n";
qDebug() << s;
return 0;
}
我可以在控制台调试输出和文件中看到可打印字符:
"תקליט שסימל שינוי בסגנון לדעתי אם אני זוכר נכון"
因此,您可能做了一些错误的事情或朝着错误的方向看,您能粘贴代码以便我们能更好地帮助您吗?我不知道您是如何打印字符串的,但这只是Unicode:
#include <QString>
#include <QFile>
#include <QDebug>
int main(int argc, char **argv)
{
QString s = "\u05ea\u05e7\u05dc\u05d9\u05d8 \u05e9\u05e1\u05d9\u05de\u05dc \u05e9\u05d9\u05e0\u05d5\u05d9 \u05d1\u05e1\u05d2\u05e0\u05d5\u05df \u05dc\u05d3\u05e2\u05ea\u05d9 \u05d0\u05dd \u05d0\u05e0\u05d9 \u05d6\u05d5\u05db\u05e8 \u05e0\u05db\u05d5\u05df";
QFile file1("1.txt");
if (!file1.open(QIODevice::WriteOnly | QIODevice::Text))
return 1;
QTextStream out(&file1);
out << s << "\n";
qDebug() << s;
return 0;
}
我可以在控制台调试输出和文件中看到可打印字符:
"תקליט שסימל שינוי בסגנון לדעתי אם אני זוכר נכון"
因此,您可能做了一些错误的事情或朝着错误的方向看,您能粘贴代码以便我们能更好地帮助您吗?这不是UTF-8
\uxxx
是一个Unicode转义序列:Unicode代码点的文本表示。谢谢,你说得对。这些是基于Unicode的字符。AFAIK没有UTF-8转义序列,因为UTF-8只是一种写入/编码Unicode等效字符的方法。结果文件以UTF-8编码:$file 1.txt 1.txt:UTF-8 Unicode文本这不是UTF-8\uxxx
是一个Unicode转义序列:Unicode代码点的文本表示。谢谢,你说得对。这些是基于Unicode的字符。AFAIK没有UTF-8转义序列,因为UTF-8只是一种写入/编码Unicode等效字符的方法。生成的文件以UTF-8编码:$file 1.txt 1.txt:UTF-8 Unicode文本