Heim  >  Artikel  >  Backend-Entwicklung  >  Symbian Informationen zur Zeichenkodierungskonvertierung

Symbian Informationen zur Zeichenkodierungskonvertierung

巴扎黑
巴扎黑Original
2016-12-20 14:51:451225Durchsuche

Üblicherweise verwendete Zeichenkettenkodierungsdarstellungen in China sind: GB2312, GBK, Unicode, UTF-8
Unter ihnen ist GBK eine Obermenge von GB2312, was bedeutet, dass es den gesamten Inhalt der GB2312-Kodierung
UTF-8 abdeckt ist Unicode Ein Codierungsformat bei der Netzwerkübertragung.
Wenn wir VC als Entwicklungstool verwenden und unter Win entwickeln, ist der Standardzeichensatz von Win
GBK, während die Standardcodierungsmethode des Symbian-Systems ist
Unicode, was bedeutet, dass
zu verstümmelten Zeichen wird, wenn die direkt im Programm geschriebenen chinesischen Zeichen auf dem Mobiltelefon angezeigt werden.
Normalerweise gibt es zwei Möglichkeiten, dieses Problem zu lösen:
(1) Lösung für statische Ressourcendateien
(2) Lösung für dynamisch aufrufende Zeichensatzkonvertierungsfunktionen

Ja, die erste Als Lösung , müssen Sie die RSS-Datei manuell bearbeiten und den Inhaltsteil der chinesischen Zeichen in das UTF-8-Format ändern.
Fügen Sie Folgendes hinzu: CHARACTER_SET UTF8 am Ende oder Anfang der RSS-Datei gilt im Allgemeinen für statische Ressourcen. Wenn es sich um eine Situation handelt, in der chinesische Schriftzeichen jederzeit entsprechend Datenänderungen aktualisiert werden
, müssen Sie den zweiten Fall berücksichtigen

Der zweite Fall ist die Methode der dynamischen Konvertierung Der Zeichensatz

verwendet häufig CCnvCharacterSetConverter und die beiden Klassen CnvUtfConverter konvertieren in die vom Symbian-System erkannte Unicode-Kodierung

Die Klasse CCnvCharacterSetConverter kann alle von der Symbian-Klasse

CnvUtfConverter unterstützten Kodierungen konvertieren wird häufig für UTF-8 und Unicode und UTF-7 verwendet. Konvertieren in und von Unicode


Header-Datei hinzufügen
#include // für Zeichensatzkonvertierung GBK – Unicode
Fügen Sie
BIBLIOTHEK in mmp charconv.lib // für den GBK-zu-Unicode-Konverter hinzu

Nachdem diese beiden Schritte abgeschlossen sind, können die folgenden zwei Funktionen verwendet werden.
void CMcAppUi::ConvGbk2Uni(TDesC8& original, TDes& res) {
#ifndef __WINS__
RFs aFileServerSession;
aFileServerSession.Connect();
CCn vCharacterSetConverter* converter=CCnvCharacterSetConverter::NewLC( ) ; : :KStateDefault ;

TPtrC8 str( original ); > 
                                                                                                                                         ;
res .Copy(ptr) ;
CleanupStack::PopAndDestroy(); 🎜>#sonst
res.Format(_L("wayne len %d "), original.Length()) ;
#endif
}

void CMcAppUi::ConvUni2Gbk(TDesC& original, TDes8& res ) {
#ifndef __WINS__
TInt state= CCnvCharacterSetConverter::KStateDefault ;
CCnvCharacterSetConverter* iConv ;
if(iConv->PrepareToConvertToOrFromL (KCharact erSetIdentifierGbk,
iEikonEnv->FsSession())!= CCnvCharacterSetConverter::EAvailable)
User::Leave(KErrNotSupported);
iConv->ConvertFromUnicode(res, original, state);
CleanupStack::PopAndDestroy() ;
#else
res.Format(_L8("wayne chen %s"), original) ;
#endif
}

Spezifische Verwendungsmethode :
TBuf<20> title16;
TBuf<20> msg16; ;
msg8.Format(_L8("Danke für die Verwendung")) ;
ShowInfoDialog(title16, msg16) ; 16-Bit-Unicode-Zeichenfolgen für Chinesisch können direkt angezeigt werden.

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn