Internet names, standard names and MIB enums (SNM) are widely used for character sets. This section describes how to use these names and values during character conversion.
To convert text between a foreign encoding and Unicode you must know the UID of the character converter.
Device creators can create files which map SNM information of character sets to the UIDs of their character converters. Application developers can then use the MIB enum value or an alias of a character set without knowing its UID.
Creating an SNM source file
Device creators can create an SNM mapping file in the ROM as follows:
Create an SNM source file using a text editor on a PC and save it. For example d:\charconvfiles\basicsnm.txt.
This file must define the mapping between Symbian-specific character set UIDs and one or more standard names and MIB enums. Refer to SNM Source File Reference for the file syntax. For information about Symbian UIDs, refer to the charconv.h header file.
... CharacterSet 0x10004cc6 StandardName "US-ASCII" StandardName "ASCII" StandardName "ANSI_X3.4-1968" StandardName "iso-ir-6" StandardName "ANSI_X3.4-1986" StandardName "ISO_646.irv:1991" StandardName "ISO646-US" StandardName "us" StandardName "IBM367" StandardName "cp367" StandardName "csASCII" MibEnum 3 CharacterSet 0x10003b10 StandardName "ISO-8859-1" StandardName "ISO_8859-1" StandardName "latin1" StandardName "iso-ir-100" StandardName "l1" StandardName "IBM819" StandardName "CP819" StandardName "csISOLatin1" MibEnum 4 ...
Use the snmtool to generate an SNM file from the source SNM file.
From a command line, run the following commands to go to the Symbian tools directory and execute snmtool:
cd d:\Symbian\epoc32\tools
snmtool.bat d:\charconvfiles\basicsnm.txt d:\charconvfiles\basic.snm
Copy the SNM file to the \system\charconv\ directory.
Retrieving a Character Converter UID using an SNM standard name or MIB enum
Use an SNM standard name or MIB enum value to retrieve the UID of the character converter.
RFs fileServerSession; CCnvCharacterSetConverter* characterSetConverter = CCnvCharacterSetConverter::NewLC(); TUint characterSetUid = characterSetConverter->ConvertStandardNameOfCharacterSetToIdentifierL(_L8("ASCII"), fileServerSession); // use the UID to load the converter. CCnvCharacterSetConverter::TAvailability available = characterSetConverter->PrepareToConvertToOrFromL(characterSetUid, fileServerSession); ...
There are two functions for getting a UID:
CCnvCharacterSetConverter::ConvertStandardNameOfCharacterSetToIdentifierL() takes a standard name as a parameter.
CCnvCharacterSetConverter::ConvertMibEnumOfCharacterSetToIdentifierL() takes a MIB enum value as a parameter.
These functions read the SNM file to get the UID. The UID can then be passed to PrepareToConvertToOrFromL() to load the right converter.
Note: If there are multiple SNM files, the contents are combined.