Есть ли библиотека Lua, которая преобразует строку в байты, используя кодировку UTF8? - PullRequest
10 голосов
/ 04 мая 2011

Интересно, существует ли такая библиотека.

Ответы [ 3 ]

5 голосов
/ 04 мая 2011

slnunicode является частью коллекции универсальных библиотек поддержки lua, разработанных для проекта базы данных Selene.

Он также доступен как luarock

1 голос
/ 13 июня 2015

Lua 5.3 теперь имеет поддержку UTF-8 в стандартной библиотеке.

Например, чтобы получить кодовые точки строки UTF-8:

for p, c in utf8.codes("瑞&于") do
  print(c)
end

Выход:

29790
38
20110
0 голосов
/ 03 ноября 2016

Строки Lua представляют собой последовательность байтов.Когда вы сохраняете в них текст UTF8, вы уже сохраняете «байты UTF8».Вы можете получить байты, как и во всех других строках, используя string.byte(s,i,j):

local bytes = { string.byte(unicodeString, 1,-1) }

Теперь байты - это таблица, содержащая ваши «байты UTF8».Более подробную информацию о string.byte и UTF8 в Lua можно получить по адресу:

Стандартный Lua библиотека строк

Стандартный Lua 5.3 Библиотека utf8

Презентация Роберто Иерусалимского (одного из создателей Lua) о будущем Lua, в котором говорится о многих вещах, и одна из них - поддержка UTF8.Он был выпущен до того, как поддержка UTF8 была встроена в Lua.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...