我有一個很大的char數組,它包含用UTF-8編碼的捷克變音字符(例如「á」)。我需要將它們替換爲它們的ASCII等價物(例如「a」),因爲程序必須在Windows上工作(Linux控制檯完全接受這些字符)。 我正在通過char讀取數組char,並將內容寫入字符串。 這裏是我使用的代碼,這並不工作:如何在C++中比較/替換數組中的非ASCII字符?
int array_size = 50000; //size of file array
char * array = new char[array_size]; //array to store file contents
string ascicontent="";
if ('\u00E1'==array[zacatek]) { //check if char is "á"
ascicontent +='a'; //write ordinal "a" into string
}
我甚至試圖與「A」代替「\ u00E1」,但它也不起作用。猜測有問題,這些字符比ascii長。
我該如何聲明非ASCII字符,因此可以進行比較?
Windows控制檯和命令行參數確實支持Unicode。不幸的是,爲了利用這一點,你必須使用特定於Windows的功能而不是標準的C++功能。 – dan04