所有的字符串数据都需要在某些时候通过Java传递,因此在处理它们时添加Unicode支持可能会有所帮助(因为Java内部的字符串使用UTF-8编码)。具体而言,屏幕会显示UTF-8字符串,意味着相关的GPU函数需接收UTF-8字符串。而且键盘输入通常也会以UTF-8编码,尤其是剪切板。
但是请记住,尽管电脑可以显示宽字符,但OpenOS的软件(shell、edit和Lua解释器)对其输入输出的支持并不全面。
我们提供下列函数以支持基本的UTF-8处理:
unicode.char(value: number, ...): string
string.char
的可支持UTF-8版本。传入值限定为整个UTF-8取值范围,不仅仅是ASCII。unicode.charWidth(value: string, ...): number
シ
将会返回2
,给定a
将会返回1
。unicode.isWide(value: string, ...): boolean
シ
将会返回true
,给定a
将会返回false'
。unicode.len(value: string): number
string.len
的可支持UTF-8版本。例如,给定Ümläüt
,本函数将会返回6
,而string.len
会返回9
。unicode.lower(value: string): string
string.lower
的可支持UTF-8版本。unicode.reverse(value: string): string
string.reverse
的可支持UTF-8版本。例如,给定Ümläüt
,本函数将会返回tüälmÜ
,而string.reverse
会返回tälm
。unicode.sub(value: string, i:number[, j:number]): string
string.sub
的可支持UTF-8版本。unicode.upper(value: string): string
string.upper
的可支持UTF-8版本。unicode.wlen(value: string): number
unicode.wtrunc(value: string, count: number): string
count
位,不含此位。如果字符串长度不足给定的count
数,函数将会报错。上述函数被用于以非二进制模式打开文件时,而原版字符串处理函数被用于以二进制模式打开文件时。