C++ 一点也不难!读取未知格式的文件,我们只能猜测,这很难。@MikeG我想你太努力了。仅举一个例子,perl-CSAD-Mutf8-pe'tr[15756][1588][abttjhhd]output是一个简单的命令行,它简单地实现了您似乎正在谈论的事情的一部
C++ 一点也不难!读取未知格式的文件,我们只能猜测,这很难。@MikeG我想你太努力了。仅举一个例子,perl-CSAD-Mutf8-pe'tr[15756][1588][abttjhhd]output是一个简单的命令行,它简单地实现了您似乎正在谈论的事情的一部,c++,unicode,ascii,arabic,transliteration,C++,Unicode,Ascii,Arabic,Transliteration,一点也不难!读取未知格式的文件,我们只能猜测,这很难。@MikeG我想你太努力了。仅举一个例子,perl-CSAD-Mutf8-pe'tr[15756][1588][abttjhhd]output是一个简单的命令行,它简单地实现了您似乎正在谈论的事情的一部分。当现有的工具已经足够的时候,你为什么要写一个程序?@MikeG:只有当你的编码是UTF8时,这才有效。您的编码是UTF8吗?@tchrist:UTF8是目前使用最广泛的,但在本文中,我想请您不要说Unicode是UTF8,这令人困惑。后缀是
一点也不难!读取未知格式的文件,我们只能猜测,这很难。@MikeG我想你太努力了。仅举一个例子,
perl-CSAD-Mutf8-pe'tr[15756][1588][abttjhhd]output
是一个简单的命令行,它简单地实现了您似乎正在谈论的事情的一部分。当现有的工具已经足够的时候,你为什么要写一个程序?@MikeG:只有当你的编码是UTF8时,这才有效。您的编码是UTF8吗?@tchrist:UTF8是目前使用最广泛的,但在本文中,我想请您不要说Unicode是UTF8,这令人困惑。后缀是个好主意。至于UTF8是最干净最简单的,UTF32想和你谈谈。不管怎样,重要的是你解决了OP的问题。
$ perl -CSAD -Mutf8 -pe 'tr[ابتثجحخد][abttjhhd]' < input.utf8 > output.ascii
U+0627 ا ARABIC LETTER ALEF
U+0628 ب ARABIC LETTER BEH
U+0629 ة ARABIC LETTER TEH MARBUTA
U+062A ت ARABIC LETTER TEH
U+062B ث ARABIC LETTER THEH
U+062C ج ARABIC LETTER JEEM
U+062D ح ARABIC LETTER HAH
U+062E خ ARABIC LETTER KHAH
U+062F د ARABIC LETTER DAL
"\N{ARABIC LETTER ALEF}" => "a",
"\N{ARABIC LETTER BEH}" => "b",
"\N{ARABIC LETTER TEH}" => "t",
"\N{ARABIC LETTER THEH}" => "t",
"\N{ARABIC LETTER JEEM}" => "j",
"\N{ARABIC LETTER HAH}" => "h",
"\N{ARABIC LETTER KHAH}" => "h",
"\N{ARABIC LETTER DAL}" => "d",
std:ifstream infile("myfile.txt", std::ios::binary); //open stream
infile.seekg (0, ios::end); //get it's size
int length = infile.tellg();
infile.seekg (0, ios::beg);
std::wstring filetext(length/2); //allocate space
ifstream.read((char*)&filetext[0], length); //read entire file
std::string final(length/2);
for(int i=0; i<length/2; ++i) { //"shift" the variables to "valid" range
if (filetext[length/2] >= 0x600 && filetext[length/2] <= 0xFF)
final[length/2] = filetext[length/2]-0x600;
else
throw std::exception("INVALID CHARACTER");
}
//done