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+FF01U+0021!
U+FF02U+0022"
U+FF03U+0023#
U+FF04U+0024$
U+FF05U+0025%
U+FF06U+0026&
U+FF07U+0027'
U+FF08U+0028(
U+FF09U+0029)
U+FF0AU+002A*
U+FF0BU+002B+
U+FF0CU+002C,
U+FF0DU+002D-
U+FF0EU+002E.
U+FF0FU+002F/
U+FF10U+00300
U+FF11U+00311
U+FF12U+00322
U+FF13U+00333
U+FF14U+00344
U+FF15U+00355
U+FF16U+00366
U+FF17U+00377
U+FF18U+00388
U+FF19U+00399
U+FF1AU+003A:
U+FF1BU+003B;
U+FF1CU+003C<
U+FF1DU+003D=
U+FF1EU+003E>
U+FF1FU+003F?
U+FF21U+0041A
U+FF22U+0042B
U+FF23U+0043C
U+FF24U+0044D
U+FF25U+0045E
U+FF26U+0046F
U+FF27U+0047G
U+FF28U+0048H
U+FF29U+0049I
U+FF2AU+004AJ
U+FF2BU+004BK
U+FF2CU+004CL
U+FF2DU+004DM
U+FF2EU+004EN
U+FF2FU+004FO
U+FF30U+0050P
U+FF31U+0051Q
U+FF32U+0052R
U+FF33U+0053S
U+FF34U+0054T
U+FF35U+0055U
U+FF36U+0056V
U+FF37U+0057W
U+FF38U+0058X
U+FF39U+0059Y
U+FF3AU+005AZ
U+FF3BU+005B[
U+FF3CU+005C\
U+FF3DU+005D]
U+FF3EU+005E^
U+FF3F_U+005F_
U+FF40U+0060`
U+FF41U+0061a
U+FF42U+0062b
U+FF43U+0063c
U+FF44U+0064d
U+FF45U+0065e
U+FF46U+0066f
U+FF47U+0067g
U+FF48U+0068h
U+FF49U+0069i
U+FF4AU+006Aj
U+FF4BU+006Bk
U+FF4CU+006Cl
U+FF4DU+006Dm
U+FF4EU+006En
U+FF4FU+006Fo
U+FF50U+0070p
U+FF51U+0071q
U+FF52U+0072r
U+FF53U+0073s
U+FF54U+0074t
U+FF55U+0075u
U+FF56U+0076v
U+FF57U+0077w
U+FF58U+0078x
U+FF59U+0079y
U+FF5AU+007Az
U+FF5BU+007B{
U+FF5CU+007C|
U+FF5DU+007D}
U+FF5EU+007E~
U+FF5FU+FF5F
U+FF60U+FF60
U+FF61U+30 2
U+FF62U+30 C
U+FF63U+30 D
U+FF64U+30 1
U+FF65U+30FB
U+FF66U+30F2
U+FF67U+30A1
U+FF68U+30A3
U+FF69U+30A5
U+FF6AU+30A7
U+FF6BU+30A9
U+FF6CU+30E3
U+FF6DU+30E5
U+FF6EU+30E7
U+FF6FU+30C3
U+FF70U+30FC
U+FF71U+30A2
U+FF72U+30A4
U+FF73U+30A6
U+FF74U+30A8
U+FF75U+30AA
U+FF76U+30AB
U+FF77U+30AD
U+FF78U+30AF
U+FF79U+30B1
U+FF7AU+30B3
U+FF7BU+30B5
U+FF7CU+30B7
U+FF7DU+30B9
U+FF7EU+30BB
U+FF7FソU+30BD
U+FF80U+30BF
U+FF81U+30C1
U+FF82U+30C4
U+FF83U+30C6
U+FF84U+30C8
U+FF85U+30CA
U+FF86U+30CB
U+FF87U+30CC
U+FF88U+30CD
U+FF89U+30CE
U+FF8AU+30CF
U+FF8BU+30D2
U+FF8CU+30D5
U+FF8DU+30D8
U+FF8EU+30DB
U+FF8FU+30DE
U+FF90U+30DF
U+FF91U+30E0
U+FF92U+30E1
U+FF93U+30E2
U+FF94U+30E4
U+FF95U+30E6
U+FF96U+30E8
U+FF97U+30E9
U+FF98U+30EA
U+FF99U+30EB
U+FF9AU+30EC
U+FF9BU+30ED
U+FF9CU+30EF
U+FF9DU+30F3
U+FF9EU+3099
U+FF9FU+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.