LUA :如何使用 io.write() 打印 Latin1 字符串?
LUA : How to print a Latin1 string with io.write()?
在Lua5.4中,我尝试用io.write()打印Latin1编码的sone字符串,但是有些字符(à,é...)打印不好,
我该如何执行此操作?
这是使用 win-125x.lua
打印失败的截图
我猜你是 运行 Lua Windows。
因为您正在将 Latin1 字符转换为 UTF8,所以您应该在 运行 您的 Lua 脚本之前将 Windows 控制台代码页设置为 UTF8,使用以下命令:
chcp 65001
另一种选择是使用 UTF8 编码保存脚本,无需将字符串从 cp1252 转换为 UTF8,并在 运行 脚本之前使用 chcp 命令。
请记住,标准 Lua 没有字符串编码的概念,并且 Windows 在控制台中对 UTF8 字符的支持是不完整的。所以才会出现这样的问题。
也检查相关问题:Problem with accents while copying files in LUA
如果你有 table utf8
你可以做...
> do io.write(utf8.char(8364):rep(3)..'\n'):flush() end
€€€
要获取您可以执行的代码...
> do io.write(utf8.codepoint('€')..'\n'):flush() end
8364
但我不确定这是否适用于 windows。
...我在 linux.
在Lua5.4中,我尝试用io.write()打印Latin1编码的sone字符串,但是有些字符(à,é...)打印不好,
我该如何执行此操作?
这是使用 win-125x.lua
打印失败的截图我猜你是 运行 Lua Windows。
因为您正在将 Latin1 字符转换为 UTF8,所以您应该在 运行 您的 Lua 脚本之前将 Windows 控制台代码页设置为 UTF8,使用以下命令:
chcp 65001
另一种选择是使用 UTF8 编码保存脚本,无需将字符串从 cp1252 转换为 UTF8,并在 运行 脚本之前使用 chcp 命令。
请记住,标准 Lua 没有字符串编码的概念,并且 Windows 在控制台中对 UTF8 字符的支持是不完整的。所以才会出现这样的问题。
也检查相关问题:Problem with accents while copying files in LUA
如果你有 table utf8
你可以做...
> do io.write(utf8.char(8364):rep(3)..'\n'):flush() end
€€€
要获取您可以执行的代码...
> do io.write(utf8.codepoint('€')..'\n'):flush() end
8364
但我不确定这是否适用于 windows。
...我在 linux.