Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Kodowanie chińskich znaków

Ostatnio zmodyfikowano 2016-08-18 02:29
Autor Wiadomość
j23
» 2016-08-15 19:46:44
Załącz <windows.h> i daj L przed literałem tekstowym (patrz przykład).
P-150902
bati22
Temat założony przez niniejszego użytkownika
» 2016-08-15 19:50:57
Ok, działa, tylko nic się nie wyświetla.
C/C++
#include <string>
#include <iostream>
#include<windows.h>
using namespace std;

int main()
{
    wstring Kanji = L"漢字";
    if( SetConsoleOutputCP( 932 ) )
    {
        setlocale( LC_CTYPE, ".932" ); // w MinGW tak musi być, normalnie użyłbym wcout.imbue()
       
        std::wstring Kanji = L"漢字";
       
        std::wcout << Kanji << L'\n';
    }
   
    return 0;
}
P-150903
j23
» 2016-08-15 19:56:32
Czyli jest tak, jak pisałem. Konsola windowsowa to jest dość prosty interfejs znakowy, generalnie do bardziej złożonych rzeczy (w kwestii wyświetlania) powinieneś użyć graficznego interfejsu, który daje większe możliwości.
P-150904
bati22
Temat założony przez niniejszego użytkownika
» 2016-08-15 19:58:25
@j23 Ok, dzięki wielkie za pomoc ;)
P-150905
Elaine
» 2016-08-16 01:52:11
1. Zwykły string sobie z tym nie poradzi, użyj wstring.
Oczywiście, że sobie poradzi, std::string zawiera po prostu bajty i nie interesuje go, co to za bajty; można trzymać w nim UTF-8 bez żadnego problemu. std::wstring nadaje się tylko do jednej rzeczy: współpracy z zewnętrznymi API używającymi wchar_t.

Pisałem już kiedyś, dlaczego sprawa z kodowaniami pod Windowsem jest taka chora, ale dzięki wspaniałej wyszukiwarce nie mogę tego znaleźć.
P-150915
jankowalski25
» 2016-08-17 17:41:06
Pisałem już kiedyś, dlaczego sprawa z kodowaniami pod Windowsem jest taka chora, ale dzięki wspaniałej wyszukiwarce nie mogę tego znaleźć.
Chodzi o drugą stronę tematu Cyfry zamiast liter w wchar_t?
P-150953
Elaine
» 2016-08-18 02:29:25
Tak, o ten post chodzi.
P-150962
1 « 2 »
Poprzednia strona Strona 2 z 2