kodowanie utf8 i ansi

0

Witam,

Używam systemu ustawionego na utf 8. Jak mogę napisać zamianę znaków podanych przez konsole na coś innego?

case 'ę': tekst[i] = 'l';

niestety takie "ę" podane z konsoli nie jest rozróżniane, a każda inna literka jest, wiec, jak mam pogodzić dwa kodowania?

0

uzywaj -DUNICODE, wchar_t, wstring, wcin, wcout itede

0

A czy mógłbyś pokazać mi pewien przykłąd działania tego? Np. chciałbym mieć możliwość przeczytania takiego znaku, np. "ąśćżń" następnie zapisanie to do ascii jako zwykłe "asczn". Nie bardzo wiem jak tego sie używa. A co oznacza: "-DUNICODE"?

0
#include <iostream>

using namespace std;

int main(int argc, char* argv[])
{
 wchar_t znak;
 wcin >> znak;
 wcout << "utf8 znak: '" << znak << "' (" << (int)znak << ")" << endl; 
 return 0;
}

'ę' (169 utf8)

0

Co za ustrojstwo...

> ./a.out
ę
utf8 znak: '?' (-1080027512)

System na pewno używa utf8:

> locale
LANG=pl_PL.UTF-8
LC_CTYPE="pl_PL.UTF-8"
LC_NUMERIC="pl_PL.UTF-8"
LC_TIME="pl_PL.UTF-8"
LC_COLLATE=pl_PL.UTF-8
LC_MONETARY="pl_PL.UTF-8"
LC_MESSAGES="pl_PL.UTF-8"
LC_PAPER="pl_PL.UTF-8"
LC_NAME="pl_PL.UTF-8"
LC_ADDRESS="pl_PL.UTF-8"
LC_TELEPHONE="pl_PL.UTF-8"
LC_MEASUREMENT="pl_PL.UTF-8"
LC_IDENTIFICATION="pl_PL.UTF-8"
LC_ALL=

1 użytkowników online, w tym zalogowanych: 0, gości: 1