Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在QT流中将unicode转换为可打印字符串_Qt_Encoding_Character Encoding - Fatal编程技术网

如何在QT流中将unicode转换为可打印字符串

如何在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

我正在向文件和标准输出写入流,但我得到了如下某种编码:

\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


如何将其转换为可打印字符串?

我不知道如何打印字符串,但这只是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文本