SymbianOS は Unicode が使われているけど、色んな漢字コードが日本には存在する。とりあえず、使いたいときは下記の様にお手軽に使える。
TBool CBTMSG60AppView::CharConvertL(TInt aTargetCode, TDes & aDes) const
{
TBuf unicodeMessage;
TBuf8 jiscodeMessage;
unicodeMessage.Copy(aDes);
CCnvCharacterSetConverter* converter = CCnvCharacterSetConverter::NewLC();
if(converter->PrepareToConvertToOrFromL(aTargetCode,
iEikonEnv->FsSession()) != CCnvCharacterSetConverter::EAvailable)
User::Leave(KErrNotSupported);
if(CCnvCharacterSetConverter::EErrorIllFormedInput == converter->ConvertFromUnicode(jiscodeMessage, unicodeMessage))
User::Leave(KErrArgument); //Leave if error in conversion.
aDes.Copy( jiscodeMessage );
return ETrue;
}
呼び出すときは
iAppView->CharConvertL(KCharacterSetIdentifierShiftJis, textData);
って感じで。他の漢字コードを使いたいときは一つ目の引数を変える。charconv.h charconv.lib も忘れずに!!
DynInitMenuPane の注意点
メニューの項目を動的に減らすメソッドの DynInitMenuPane だが、Series60青本では、なぜか それ自身をオーバーライドしていない。一応、注意点としてオーバーライドするように書いてあるが、忘れがちになるので注意すること。