C ++从非英语文件名和非英语文本中读取

时间:2016-07-05 13:44:05

标签: c++ unicode io stream

我有一个非英文名字的文件。内容也是非英语。

现在,我想在该文件上创建一个流,以便能够读/写数据。

另外,如果可能,我想检测文本是哪种语言。

例如:

我有一个文件“հայերեն。txt”,在文本文件中我们写了“Բարեւ”。文件是Unicode编码的。现在我想将文件名和文本都读入RAM。

另外,假设我还有其他文字“Վահագն”。现在我想创建一个文件“Վահագն。txt”并在文件中写一些其他的unicode文本。

操作系统:Windows 7 +。

C ++:vc120或vc140。

1 个答案:

答案 0 :(得分:2)

Windows本身非常支持unicode,至少对于Basic Multilingual Plane,因为至少Windows 3具有API的Unicode部分。

您只需使用宽字符作为处理它的函数的文件名,以及宽字符流。但是在没有看到你的代码的情况下,我担心我不能说更多,除了使用最新的C ++编译器,你可以使用WinAPI函数或使用标准C ++库(std :: wstring和std ::)来做到这一点。 wfstream)。但您必须知道您对文件使用的编码...