103 const TDesC8& aReplacementForUnconvertibleUnicodeCharacters, |
103 const TDesC8& aReplacementForUnconvertibleUnicodeCharacters, |
104 TDes8& aForeign, |
104 TDes8& aForeign, |
105 const TDesC16& aUnicode, |
105 const TDesC16& aUnicode, |
106 CCnvCharacterSetConverter::TArrayOfAscendingIndices& aIndicesOfUnconvertibleCharacters) |
106 CCnvCharacterSetConverter::TArrayOfAscendingIndices& aIndicesOfUnconvertibleCharacters) |
107 { |
107 { |
108 TInt ret = KErrNone; |
|
109 RArray<CnvUtilities::SCharacterSet> characterSets; |
108 RArray<CnvUtilities::SCharacterSet> characterSets; |
110 if ( FeatureManager::FeatureSupported(KFeatureIdJapanesePicto) ) |
109 if ( FeatureManager::FeatureSupported(KFeatureIdJapanesePicto) ) |
111 { |
110 { |
112 CnvUtilities::SCharacterSet characterSet; |
111 CnvUtilities::SCharacterSet characterSet; |
113 characterSet.iConversionData=&CnvJisRoman::ConversionData(); |
112 characterSet.iConversionData=&CnvJisRoman::ConversionData(); |
114 characterSet.iConvertFromIntermediateBufferInPlace=ConvertFromJisRomanToJisInPlace; |
113 characterSet.iConvertFromIntermediateBufferInPlace=ConvertFromJisRomanToJisInPlace; |
115 characterSet.iEscapeSequence=&KLit8EscapeSequenceForJisRoman; |
114 characterSet.iEscapeSequence=&KLit8EscapeSequenceForJisRoman; |
116 ret |= characterSets.Append(characterSet); |
115 characterSets.Append(characterSet); |
117 characterSet.iConversionData=&CCnvCharacterSetConverter::AsciiConversionData(); |
116 characterSet.iConversionData=&CCnvCharacterSetConverter::AsciiConversionData(); |
118 characterSet.iConvertFromIntermediateBufferInPlace=ConvertFromAsciiToJisInPlace; |
117 characterSet.iConvertFromIntermediateBufferInPlace=ConvertFromAsciiToJisInPlace; |
119 characterSet.iEscapeSequence=&KLit8EscapeSequenceForAscii; |
118 characterSet.iEscapeSequence=&KLit8EscapeSequenceForAscii; |
120 ret |= characterSets.Append(characterSet); |
119 characterSets.Append(characterSet); |
121 characterSet.iConversionData=&CnvJisX0208::ConversionData(); |
120 characterSet.iConversionData=&CnvJisX0208::ConversionData(); |
122 characterSet.iConvertFromIntermediateBufferInPlace=ConvertFromJisX0208ToJisInPlace; |
121 characterSet.iConvertFromIntermediateBufferInPlace=ConvertFromJisX0208ToJisInPlace; |
123 characterSet.iEscapeSequence=&KLit8EscapeSequenceForJisX0208_1983; |
122 characterSet.iEscapeSequence=&KLit8EscapeSequenceForJisX0208_1983; |
124 ret |= characterSets.Append(characterSet); |
123 characterSets.Append(characterSet); |
125 characterSet.iConversionData=&CnvJisX0212::ConversionData(); |
124 characterSet.iConversionData=&CnvJisX0212::ConversionData(); |
126 characterSet.iConvertFromIntermediateBufferInPlace=ConvertFromJisX0212ToJisInPlace; |
125 characterSet.iConvertFromIntermediateBufferInPlace=ConvertFromJisX0212ToJisInPlace; |
127 characterSet.iEscapeSequence=&KLit8EscapeSequenceForJisX0212_1990; |
126 characterSet.iEscapeSequence=&KLit8EscapeSequenceForJisX0212_1990; |
128 ret |= characterSets.Append(characterSet); |
127 characterSets.Append(characterSet); |
129 |
128 |
130 SetCharacterSetsForPictograph(characterSets); |
129 SetCharacterSetsForPictograph(characterSets); |
131 } |
130 } |
132 else |
131 else |
133 { |
132 { |
134 CnvUtilities::SCharacterSet characterSet; |
133 CnvUtilities::SCharacterSet characterSet; |
135 characterSet.iConversionData=&CnvJisRoman::ConversionData(); |
134 characterSet.iConversionData=&CnvJisRoman::ConversionData(); |
136 characterSet.iConvertFromIntermediateBufferInPlace=ConvertFromJisRomanToJisInPlace; |
135 characterSet.iConvertFromIntermediateBufferInPlace=ConvertFromJisRomanToJisInPlace; |
137 characterSet.iEscapeSequence=&KLit8EscapeSequenceForJisRoman; |
136 characterSet.iEscapeSequence=&KLit8EscapeSequenceForJisRoman; |
138 ret |= characterSets.Append(characterSet); |
137 characterSets.Append(characterSet); |
139 characterSet.iConversionData=&CCnvCharacterSetConverter::AsciiConversionData(); |
138 characterSet.iConversionData=&CCnvCharacterSetConverter::AsciiConversionData(); |
140 characterSet.iConvertFromIntermediateBufferInPlace=ConvertFromAsciiToJisInPlace; |
139 characterSet.iConvertFromIntermediateBufferInPlace=ConvertFromAsciiToJisInPlace; |
141 characterSet.iEscapeSequence=&KLit8EscapeSequenceForAscii; |
140 characterSet.iEscapeSequence=&KLit8EscapeSequenceForAscii; |
142 ret |= characterSets.Append(characterSet); |
141 characterSets.Append(characterSet); |
143 characterSet.iConversionData=&CnvJisX0208::ConversionData(); |
142 characterSet.iConversionData=&CnvJisX0208::ConversionData(); |
144 characterSet.iConvertFromIntermediateBufferInPlace=ConvertFromJisX0208ToJisInPlace; |
143 characterSet.iConvertFromIntermediateBufferInPlace=ConvertFromJisX0208ToJisInPlace; |
145 characterSet.iEscapeSequence=&KLit8EscapeSequenceForJisX0208_1983; |
144 characterSet.iEscapeSequence=&KLit8EscapeSequenceForJisX0208_1983; |
146 ret |= characterSets.Append(characterSet); |
145 characterSets.Append(characterSet); |
147 characterSet.iConversionData=&CnvJisX0212::ConversionData(); |
146 characterSet.iConversionData=&CnvJisX0212::ConversionData(); |
148 characterSet.iConvertFromIntermediateBufferInPlace=ConvertFromJisX0212ToJisInPlace; |
147 characterSet.iConvertFromIntermediateBufferInPlace=ConvertFromJisX0212ToJisInPlace; |
149 characterSet.iEscapeSequence=&KLit8EscapeSequenceForJisX0212_1990; |
148 characterSet.iEscapeSequence=&KLit8EscapeSequenceForJisX0212_1990; |
150 ret |= characterSets.Append(characterSet); |
149 characterSets.Append(characterSet); |
151 } |
150 } |
152 __ASSERT_DEBUG(!ret, User::Panic(_L("RArray append failure"), ret)); |
|
153 TUint notUsed; |
151 TUint notUsed; |
154 TUint inputConversionFlags=CCnvCharacterSetConverter::EInputConversionFlagMustEndInDefaultCharacterSet; |
152 TUint inputConversionFlags=CCnvCharacterSetConverter::EInputConversionFlagMustEndInDefaultCharacterSet; |
155 TInt unconvert = CnvUtilities::ConvertFromUnicode(aDefaultEndiannessOfForeignCharacters, aReplacementForUnconvertibleUnicodeCharacters, aForeign, aUnicode, aIndicesOfUnconvertibleCharacters, |
153 TInt unconvert = CnvUtilities::ConvertFromUnicode(aDefaultEndiannessOfForeignCharacters, aReplacementForUnconvertibleUnicodeCharacters, aForeign, aUnicode, aIndicesOfUnconvertibleCharacters, |
156 characterSets.Array(),notUsed,inputConversionFlags); |
154 characterSets.Array(),notUsed,inputConversionFlags); |
157 |
155 |