Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/148.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
C++ 如何在Visual Studio C+中阅读希伯来文字母+;_C++_Unicode_Utf 8_Visual Studio 2017_Hebrew - Fatal编程技术网

C++ 如何在Visual Studio C+中阅读希伯来文字母+;

C++ 如何在Visual Studio C+中阅读希伯来文字母+;,c++,unicode,utf-8,visual-studio-2017,hebrew,C++,Unicode,Utf 8,Visual Studio 2017,Hebrew,我试图读入一个希伯来文文本文件,做一些修改,然后将其发送到另一个文本文件。我已经成功地使用UTF8显示了希伯来文字母,但我似乎无法在中阅读它们。这段代码成功地将希伯来语字母打印到它被重定向到的txt文件中,但是当我尝试从另一个文本文件(被重定向到)中读取希伯来语时,我得到了随机垃圾。我该如何解决这个问题 #include <iostream> #include <string> #include <fcntl.h> #include <io.h>

我试图读入一个希伯来文文本文件,做一些修改,然后将其发送到另一个文本文件。我已经成功地使用UTF8显示了希伯来文字母,但我似乎无法在中阅读它们。这段代码成功地将希伯来语字母打印到它被重定向到的txt文件中,但是当我尝试从另一个文本文件(被重定向到)中读取希伯来语时,我得到了随机垃圾。我该如何解决这个问题

#include <iostream>
#include <string>
#include <fcntl.h>
#include <io.h>
#include <fstream>
using namespace std;

int main() {
    _setmode(_fileno(stdout), _O_U8TEXT);
    wprintf(L"\x05D0");//works with courier new in terminal
    wchar_t example[] = L"א";
    wcout << endl << example << endl;
    wstring x;
    getline(wcin, x);
    wcout << x;
    return 0;
}

问题已经解决了。巴马克·谢米拉尼几乎就是这么说的。我把它放在设置模式下(_fileno(stdin),_O_U16TEXT);将我的输出更改为U16,但仍然收到垃圾,然后我将它们都更改为U8,并且我能够完美地读取和输出。

文本文件的格式是什么?是utf 8还是utf 16 ucs 2?或者特定于windows的希伯来文mbcs代码页?您的示例不是UTF8字符串。他们是广泛的字符。要使
example
成为utf8字符串,请将其更改为
char\t example[]=u8“א”
。将
\u O U8TEXT
更改为
\u O U16TEXT
stdin
->
\u设置模式(\u文件号(stdin),\u O U16TEXT)重复
א
א
×××× ×©××ת ×× × ×שר×× ××××× ×צר××× ×ת ××¢×§× ××ש ××××ª× ××× â¬