KCML_Normalize_UTF8

Purpose

Normalizes wide ASCII and half-width kana characters in a UTF8 string

Definition

DEFSUB 'KCML_Normalize_UTF8(BYREF utf8string$) AS Bool

Parameters

utf8stringUTF8 string

Return

Returns TRUE if string contained normalized characters.

Description

Modify string in place replacing any wide ASCII (in the range U+FF00-U+FF5E and ideographic space U+3000) characters with their narrow equivalent and any half-width kana characters (in the range U+FF61-U+FF9f) with their full-width equivalent. Where a character is followed by a dakuten (U+FF9E) or handakuten (U+FF9F) voice mark and the converted character incorporates the voice mark then the trailing mark character will be removed.

Conversions

UnicodeCharacterNormalized UnicodeNormalized Character
U+FF01!U+0021!
U+FF02"U+0022"
U+FF03#U+0023#
U+FF04$U+0024$
U+FF05%U+0025%
U+FF06&U+0026&
U+FF07'U+0027'
U+FF08(U+0028(
U+FF09)U+0029)
U+FF0A*U+002A*
U+FF0B+U+002B+
U+FF0C,U+002C,
U+FF0D-U+002D-
U+FF0E.U+002E.
U+FF0F/U+002F/
U+FF100U+00300
U+FF111U+00311
U+FF122U+00322
U+FF133U+00333
U+FF144U+00344
U+FF155U+00355
U+FF166U+00366
U+FF177U+00377
U+FF188U+00388
U+FF199U+00399
U+FF1A:U+003A:
U+FF1B;U+003B;
U+FF1C<U+003C<
U+FF1D=U+003D=
U+FF1E>U+003E>
U+FF1F?U+003F?
U+FF21AU+0041A
U+FF22BU+0042B
U+FF23CU+0043C
U+FF24DU+0044D
U+FF25EU+0045E
U+FF26FU+0046F
U+FF27GU+0047G
U+FF28HU+0048H
U+FF29IU+0049I
U+FF2AJU+004AJ
U+FF2BKU+004BK
U+FF2CLU+004CL
U+FF2DMU+004DM
U+FF2ENU+004EN
U+FF2FOU+004FO
U+FF30PU+0050P
U+FF31QU+0051Q
U+FF32RU+0052R
U+FF33SU+0053S
U+FF34TU+0054T
U+FF35UU+0055U
U+FF36VU+0056V
U+FF37WU+0057W
U+FF38XU+0058X
U+FF39YU+0059Y
U+FF3AZU+005AZ
U+FF3B[U+005B[
U+FF3C\U+005C\
U+FF3D]U+005D]
U+FF3E^U+005E^
U+FF3F_U+005F_
U+FF40`U+0060`
U+FF41aU+0061a
U+FF42bU+0062b
U+FF43cU+0063c
U+FF44dU+0064d
U+FF45eU+0065e
U+FF46fU+0066f
U+FF47gU+0067g
U+FF48hU+0068h
U+FF49iU+0069i
U+FF4AjU+006Aj
U+FF4BkU+006Bk
U+FF4ClU+006Cl
U+FF4DmU+006Dm
U+FF4EnU+006En
U+FF4FoU+006Fo
U+FF50pU+0070p
U+FF51qU+0071q
U+FF52rU+0072r
U+FF53sU+0073s
U+FF54tU+0074t
U+FF55uU+0075u
U+FF56vU+0076v
U+FF57wU+0077w
U+FF58xU+0078x
U+FF59yU+0079y
U+FF5AzU+007Az
U+FF5B{U+007B{
U+FF5C|U+007C|
U+FF5D}U+007D}
U+FF5E~U+007E~
U+FF5F⦅U+FF5F⦅
U+FF60⦆U+FF60⦆
U+FF61。U+30 2。
U+FF62「U+30 C「
U+FF63」U+30 D」
U+FF64、U+30 1、
U+FF65・U+30FB・
U+FF66ヲU+30F2ヲ
U+FF67ァU+30A1ァ
U+FF68ィU+30A3ィ
U+FF69ゥU+30A5ゥ
U+FF6AェU+30A7ェ
U+FF6BォU+30A9ォ
U+FF6CャU+30E3ャ
U+FF6DュU+30E5ュ
U+FF6EョU+30E7ョ
U+FF6FッU+30C3ッ
U+FF70ーU+30FCー
U+FF71アU+30A2ア
U+FF72イU+30A4イ
U+FF73ウU+30A6ウ
U+FF74エU+30A8エ
U+FF75オU+30AAオ
U+FF76カU+30ABカ
U+FF77キU+30ADキ
U+FF78クU+30AFク
U+FF79ケU+30B1ケ
U+FF7AコU+30B3コ
U+FF7BサU+30B5サ
U+FF7CシU+30B7シ
U+FF7DスU+30B9ス
U+FF7EセU+30BBセ
U+FF7FソU+30BDソ
U+FF80タU+30BFタ
U+FF81チU+30C1チ
U+FF82ツU+30C4ツ
U+FF83テU+30C6テ
U+FF84トU+30C8ト
U+FF85ナU+30CAナ
U+FF86ニU+30CBニ
U+FF87ヌU+30CCヌ
U+FF88ネU+30CDネ
U+FF89ノU+30CEノ
U+FF8AハU+30CFハ
U+FF8BヒU+30D2ヒ
U+FF8CフU+30D5フ
U+FF8DヘU+30D8ヘ
U+FF8EホU+30DBホ
U+FF8FマU+30DEマ
U+FF90ミU+30DFミ
U+FF91ムU+30E0ム
U+FF92メU+30E1メ
U+FF93モU+30E2モ
U+FF94ヤU+30E4ヤ
U+FF95ユU+30E6ユ
U+FF96ヨU+30E8ヨ
U+FF97ラU+30E9ラ
U+FF98リU+30EAリ
U+FF99ルU+30EBル
U+FF9AレU+30ECレ
U+FF9BロU+30EDロ
U+FF9CワU+30EFワ
U+FF9DンU+30F3ン
U+FF9E゙U+3099゙
U+FF9F゚U+309A゚
U+FF73 U+FF9EヴU+30F4ヴ
U+FF8A U+FF9EバU+30D0バ
U+FF8B U+FF9EビU+30D3ビ
U+FF8C U+FF9EブU+30D6ブ
U+FF8D U+FF9EベU+30D9ベ
U+FF8E U+FF9EボU+30DCボ
U+FF8A U+FF9FパU+30D1パ
U+FF8B U+FF9FピU+30D4ピ
U+FF8C U+FF9FプU+30D7プ
U+FF8D U+FF9FペU+30DAペ
U+FF8E U+FF9FポU+30DDポ
U+FF78 U+FF9EグU+30AFグ

See also

Internal KCML Functions, Internally defined structures and Internally defined enumerations and constants.