ULSConvertCodepage
Appearance
Description
Converts a string from one codepage to another, including the Unicode UCS-2 encoding. (To convert to UCS-2, simply specify a target codepage of 1200; to convert from UCS-2, use a source codepage of 1200.)
A partial list of OS/2 codepages is at the bottom of this document.
Arguments
ULSConvertCodepage( string [, sourcecp][, targetcp][, subchar][, controls][, path] )
Parameters:
string The string to be converted (required).
sourcecp The source codepage (a positive integer). This is the codepage
with which <string> is encoded (i.e. under which it would
display correctly). The default is the current process
codepage.
targetcp The target codepage (a positive integer). This is the codepage
under which the returned string is to be encoded. The default
is the current process codepage.
subchar The substitution character for the target codepage. This is a
two-letter hexadecimal value between 00 and FF which represents
the character in the target codepage which will be used to
represent substituted (i.e. unsupported) characters. The
default value depends on the codepage; for most single-byte
codepages it is 0x7F (?).
NOTE: Not all codepages appear to honour this setting!
controls The control-byte mapping flag. This specifies how to convert
those byte values which can represent either control codes or
glyphs depending on the context: specifically, 0x00-0x19 and
0x7F. Only the first character is significant, and (if
specified) must be one of the following values:
D data/control bytes: leave values unchanged; this is the
default
G displayable glyphs: convert according to codepage like
any other character
C control bytes: convert using standard IBM control mapping
L treat linebreaks (CR and LF) as control bytes, but all
others as displayable glyphs
path The path conversion flag. This only applies to DBCS codepages,
and indicates whether or not <string> should be assumed to
contain a path specification. Only the first character is
significant, and (if specified) must be one of the following
values:
Y yes, assume string contains a path; this is the default
N no, assume string doesn't contain a path
Returns
The converted string. If an error occurs during conversion, an empty string ("") is returned and the global ULSERR variable will be set to a non-zero value.
Example
Code
/* Input string (encoded for codepage 850) */
string = 'We had lunch at a caf‚ in Reykjav¡k.'
SAY '[Codepage 850]:' string
/* Convert it to codepage 862, using '?' for unsupported characters */
string2 = ULSConvertCodepage( string, 850, 862, '3f' )
IF ULSERR \= '0' THEN
SAY ULSERR
ELSE
SAY '[Codepage 862]:' string2
/* Convert it to codepage 1200 (UCS-2) */
string3 = ULSConvertCodepage( string, 850, 1200 )
IF ULSERR \= '0' THEN
SAY ULSERR
ELSE
SAY '[UCS-2]: ' string3
Output
[Codepage 850]: We had lunch at a caf‚ in Reykjav¡k.
[Codepage 862]: We had lunch at a caf? in Reykjav?k.
[UCS-2]: W e h a d l u n c h a t a c a f é i n R e y k j a v í k .