C++ 如何在Visual Studio C+中阅读希伯来文字母+;
我试图读入一个希伯来文文本文件,做一些修改,然后将其发送到另一个文本文件。我已经成功地使用UTF8显示了希伯来文字母,但我似乎无法在中阅读它们。这段代码成功地将希伯来语字母打印到它被重定向到的txt文件中,但是当我尝试从另一个文本文件(被重定向到)中读取希伯来语时,我得到了随机垃圾。我该如何解决这个问题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>
#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)重复代码>
א
א
×××× ×©××ת ×× × ×שר×× ××××× ×צר××× ×ת ××¢×§× ××ש ××××ª× ××× â¬