Bug #10678
~u#### escape sequences which have no equivalent in the cpinternal should be not converted
Status:
New
Priority:
Normal
Assignee:
-
Target version:
-
Start date:
Due date:
% Done:
0%
billable:
No
vendor_id:
GCD
case_num:
version_reported:
version_resolved:
reviewer:
production:
No
env_name:
topics:
Related issues
History
#1 Updated by Delia Mitric 10 months ago
Testcase:
cpinternal = ISO8859-1
FUNCTION toHex RETURNS CHARACTER (INPUT vInt AS INTEGER):
IF vInt = 0 THEN RETURN "00". /* Ensure two-digit hex */
IF vInt = ? THEN RETURN "??".
DEFINE VARIABLE hexDigits AS CHARACTER INITIAL "0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F".
DEFINE VARIABLE hexResult AS CHARACTER.
DEFINE VARIABLE r AS INTEGER NO-UNDO.
DO WHILE vInt > 0:
r = vInt MODULO 16.
hexResult = ENTRY(r + 1, hexDigits) + hexResult.
vInt = TRUNCATE(vInt / 16, 0).
END.
/* Pad to ensure two digits */
IF LENGTH(hexResult) = 1 THEN hexResult = "0" + hexResult.
IF hexResult = "" THEN hexResult = "00".
RETURN hexResult.
END FUNCTION.
DEF VAR m AS RAW.
DEF VAR txt AS CHARACTER NO-UNDO.
txt = "~u2591". //a character which is not encoded in ISO8859-1
PUT-STRING(m, 1) = txt.
MESSAGE txt. //will display "~u2591"
MESSAGE "Hex representation of the character: " + toHex(GET-BYTE(m, 1)) + toHex(GET-BYTE(m, 2)) + toHex(GET-BYTE(m, 3)) + toHex(GET-BYTE(m, 4)) + toHex(GET-BYTE(m, 5)) + toHex(GET-BYTE(m, 6)). // will display 7E 75 32 35 39 31