Die folgende Funktion wurde für Java geschrieben und für C.Wie überprüft man, ob ein Unicode-Zeichen innerhalb eines gegebenen Bereichs in C liegt?
bool isFullwidthKatakana(WideChar C)
{
return(('\u30a0'<=C)&&(C<='\u30ff'));
}
Das Problem ist angepasst worden, dass mein Rahmen ("CodeGear C++ Builder") diesen Fehler zeigt:
[BCC32 Warning] Unit1.cpp(101): W8114 Character represented by universal-character-name '\u30a0' cannot be represented in the current code page (1252)
und Es ist nicht wahr, ob die Bedingungen erfüllt sind.
Zum Beispiel ist ein Eingang 'ア' (0x30A2).
Was soll ich tun? Wie kann ich die Codepage ändern?
Danke an die drei Antworten, die sie alle gelöst haben.
return((0x30a0<=C)&&(C<=0x30ff));
Es scheint, die, dass der Ausdruck \ u30a0 nicht richtig war, das alles richtig war
return((0x30a0<=C)&&(C<=0x30ff));
return (unsigned int) C >= 0x30a0u && (unsigned int) C <= 0x30ffu;
return((L'\u30a0'<=C)&&(C<=L'\u30ff'));
Vorschlag: den Titel ändern, da Sie nicht, wie bitten zu prüfen, ob ein Codepunkt gültig ist (UTF-8 kodieren * alle * gültig Unicode-Codepoints). – Richard
Welche Version von C++ Builder verwenden Sie? – stukelly
CodeGear C++ Builder 2009 – Nek