MECSUtils unit constains several functions and classes to support international characters with AnsiString/UnicodeString/WideString.# Please check source code for detail.Classes:--------------------- - PUnicodeChar(*1) - PUTF8Char - TEastAsianWidth - TElementType - TIndexCount - TLeadBytes - TNORM_FORM - UnicodeChar(*1) - UTF8Char - TCombiningType - TBytes(*3)Variables:--------------------- - DefaultAnsiCodePage - DefaultOEMCodePage - DefaultLCIDFunctions/Procedures:---------------------[Codepage/CharSet/Locale] - CodePageToFontCharset - FontCharsetToCodePage - IsFarEastCharSet - IsFarEastLCID[TBytes] - MecsAnsiBytesOf - MecsAnsiStringOf - MecsBytesOf - MecsStringOf - MecsWideBytesOf - MecsWideStringOf[AnsiString] - MecsGetCodePage - MecsGetLeadBytes - MecsShrinkElement - MecsStretchElement[UnicodeString/WideString] - MecsEastAsianWidth - MecsIsNormalized - MecsMappingFix_CP932ToUnicode - MecsMappingFix_JISX0208ToJISX0213 - MecsMappingFix_JISX0208ToUnicode - MecsMappingFix_JISX0213ToJISX0208 - MecsMappingFix_UnicodeToCP932 <- Mod 1.54 - MecsMappingFix_UnicodeToJISX0208 <- Mod 1.54 - MecsNormalize - MecsStringWidth <- Add 1.53 - StrLen(*2) - StrPos(*2) <- Add 1.55[Common] - MecsAnsiPos <- Add 1.55 - MecsAnsiPosEx <- Add 1.55 - MecsAnsiStrPos <- Add 1.55 - MecsCharLength - MecsCharToElementIndex - MecsCharToElementIndexCount - MecsCharToElementLen - MecsCopy - MecsDelete - MecsElementToCharIndex - MecsElementToCharLen - MecsElementType - MecsInsert - MecsIsFullWidth - MecsIsLeadElement - MecsIsMECElement - MecsIsTrailElement - MecsLeftStr - MecsLength - MecsMidStr - MecsNextCharIndex - MecsReverseString - MecsRightStr - MecsStrCharLength - MecsStrConv <- Add 1.50 - MecsStrElementType - MecsStrLen - MecsStrNextChar [Combining Character Sequence] - MecsCCSLength - MecsCCSToElementIndex - MecsCCSToElementLen - MecsCombiningType - MecsCopyC - MecsDeleteC - MecsElementToCCSIndex - MecsElementToCCSLen - MecsInsertC - MecsLeftStrC - MecsLengthC - MecsMidStrC - MecsNextCCSIndex - MecsReverseStringC - MecsRightStrC - MecsStrCCSLength - MecsStrLenC - MecsStrNextCCS[Convert] - AnsiToUTF32 - AnsiToUTF16 - AnsiToUTF8 - CodePointToUTF16 - CodePointToUTF8 - ConvertMultiByteToUnicode - ConvertString - ConvertUnicodeToMultiByte - TrimNullTerm - UTF32ToAnsi - UTF32ToUTF16 - UTF32ToUTF8 - UTF16ToAnsi - UTF16ToUTF32 - UTF16ToUTF8 - UTF8ToAnsi - UTF8ToUTF32 - UTF8ToUTF16[HTML] - MecsCodePageToCharset <- Add 1.52 - MecsCharsetToCodepage <- Add 1.52 - MecsHTMLDecode <- Add 1.51 - MecsHTMLEncode <- Add 1.51*1 D2009 or later*2 D2007 or before*3 D2006 or beforeExample:var A: AnsiString; B: UTF8String;begin A := '11?22?33?44'; A := MecsCopy(A, 1, 5); // '11?22' B := AnsiToUTF8(A); B := MecsCopy(B, 2, 2, CP_UTF8); // '1?' ShowMessage(IntToStr(MecsLength(B, CP_UTF8))); // return '2'end;# '?' is Multi-byte charcter.Reference manual available (Japanese).http://ht-deko.minim.ne.jp/tech021.htmlRelated: * QC#58386 * QC#65381 * QC#67468 * QC#67959 * QC#78134 * QC#78903 * QC#83508 * QC#83566 * QC#87435
↧