我正在研究烏爾都語印地文翻譯/音譯。我的目標是將烏爾都語句子翻譯成印地語,反之亦然,我正在使用visual C++ 2010軟件和C++語言。我在保存爲UTF-8格式的文本文件中寫了一個烏爾都語句子。現在我想從該文件中逐一獲取單個字符,以便我可以將其轉換爲等效的印地語字符。當我嘗試從輸入文件中獲取單個字符並在輸出文件中寫入此單個字符時,我在輸出文件中找到了一些未知的難看的字符。請用適當的代碼幫助我。我的代碼如下如何從UTF-8編碼的URDU字符串中獲取單個字符寫入文件?
#include<iostream>
#include<fstream>
#include<cwchar>
#include<cstdlib>
using namespace std;
void main()
{
wchar_t arry[50];
wifstream inputfile("input.dat",ios::in);
wofstream outputfile("output.dat");
if(!inputfile)
{
cerr<<"File not open"<<endl;
exit(1);
}
while (!inputfile.eof()) // i am using this while just to
// make sure copy-paste operation of
// written urdu text from one file to
// another when i try to pick only one character
// from file, it does not work.
{ inputfile>>arry; }
int i=0;
while(arry[i] != '\0') // i want to get urdu character placed at
// each-index so that i can work on it to convert
// it into its equivalent hindi character
{ outputfile<<arry[i]<<endl;
i++; }
inputfile.close();
outputfile.close();
cout<<"Hello world"<<endl;
}
非常感謝您的指導,請指導我如何製作我自己的utf-8解碼器? –
非常感謝您的指導,請指導我如何製作我自己的utf-8解碼器? URDU文本(巴基斯坦國家語言)以2字節字符表示爲unicode,每個字符佔用11位,因此每個字符以兩個字節編碼。我不明白,如果我從烏爾都代碼點值(11位unicode urdu字符)中刪除編碼的額外unicode位,那麼我怎樣才能把這11位置於另一個文件(已經保存爲utf-8格式)。我希望你明白我有什麼困惑 –