Unicode 标识符 |
|
没有此更改的情况
char
-> wchar_t
)。此外,Lua 的大部分内容必须更改为使用 TCHAR 和相关函数。
_G["some utf8 characters"]
(它将起作用,但这很麻烦)。
将其添加到本地配置部分(luaconf.h)中。
#ifdef LUA_CORE // all utf-8 chars are always alphabetic character (everything higher then // 2^7 is always a valid char), end of stream (-1) is not valid #define isalpha(zeich) (((0x80&zeich)||isalpha(zeich))&&zeich!=-1) // all utf-8 chars are always alphabetic character or numbers, end of // stream (-1) is not valid #define isalnum(zeich) (((0x80&zeich)||isalnum(zeich))&&zeich!=-1) // all utf-8 chars are never numbers, end of stream (-1) is not valid #define isdigit(zeich) ((!(0x80&zeich)&&isdigit(zeich))&&zeich!=-1) // all utf-8 chars are never whitespace characters, end of stream (-1) is // not valid #define isspace(zeich) ((!(0x80&zeich)&&isspace(zeich))&&zeich!=-1) #endif
请注意,所有 Unicode 字符都将被允许。(这可能是一个问题,因为某些字符看起来类似于 Lua 关键字、运算符和空格。)
然后重新编译 Lua 并尝试这些示例。
local function Gr��e(message) print(message) end Gr��eAusDeutschland = "Hallo Welt ����" -- As you see we are using a global variable with UTF-8 characters Gr��e(Gr��eAusDeutschland) -- call to local function with UTF-8 characters -- Please add other Language samples here ;) -- Just to prove my point some google translate gibberish: 日本からのご挨拶 = "ハローワールド" -- japanese Gr��e(日本からのご挨拶)
HendrikPolczynski 2009-11-20 - 第一次修订
有关 Unicode 字符串支持和验证,请参见
有关 Lua 中 Unicode 的一般信息,请参见