我有下面的代码片段(正如前面的Stack Overflow回答中所建议的那样……删除正在进行的字符串4GL中的所有特殊字符),它试图删除所有扩展的…
这似乎是一个错误!
当替换字符串中的字符CHR(255)(?)时,REPLACE()函数返回意外的结果。 REPLACE()函数修改目标字符的值,但另外它会更改字符串中出现的任何字符“Y”和“y”。 这种行为似乎只影响角色? REPLACE()正确更改了其他字符。 使用默认代码页ISO-8859-1
当替换字符串中的字符CHR(255)(?)时,REPLACE()函数返回意外的结果。
REPLACE()函数修改目标字符的值,但另外它会更改字符串中出现的任何字符“Y”和“y”。
这种行为似乎只影响角色? REPLACE()正确更改了其他字符。
使用默认代码页ISO-8859-1
链接到知识库
这是一个错误。这是关于它的Progress Knowledge Base文章:
http://knowledgebase.progress.com/articles/Article/000046181
解决方法是在中指定代码页 CHR() 声明,像这样:
CHR()
CHR(255, "UTF-8", "1252")
这是你的例子:
def var v-string as char init "abcdefghijklmnopqrstuvwxyz". def var v-int as int. do v-int = 128 to 255: assign v-string = replace(v-string, chr(v-int, "UTF-8", "1252"), ""). end. display v-string.
您现在应该在输出中看到'y'。