2013-07-26 3 views
2

Я не могу видеть, какая кодировка Lua использует для своих строк.Lua String char encoding

Им с помощью

string.byte (s [, i [, j]])

который имеет док

возвращает внутренние цифровые коды из символов с [I], S [I + 1], ···, с [J]. Значение по умолчанию для i равно 1; значением по умолчанию для j является i. Обратите внимание, что числовые коды необязательно переносятся через платформы .

Чтение вокруг людей предполагают, что использует ASCII - что хорошо для меня - но я не получаю изменение на разных платформах - я думал, что сама природа с использованием одного кодирования (например, ASCII), что это Wouldnt случиться - или это просто говорит об этом, поскольку ASCII не определяет более 126 (или 127), и поэтому разные страны/OEMS/ОС и т. д. могут использовать пользовательские расширения ASCII с десятилетия назад для верхнего диапазона?

Для меня важно знать, что [a-zA-Z] будет иметь одинаковые значения символов на всех платформах, на которых работает.

Документ Lua может быть более конкретным здесь!

Любой свет любой человек может пролить на это было бы здорово THX

+2

«Документ Lua может быть более конкретным здесь!» Нет, не может; Это портативный дизайн. Каждый строитель должен предоставить такую ​​документацию. –

ответ

4

Я довольно уверен, что вы можете смело предположить, в ASCII-кодировке, полученный. Таким образом, минимальный набор символов, которые вас интересуют, остается неизменным.

Заметка о замене кода между платформами, вероятно, означает, что Lua вообще ничего не знает о кодировке символов и, следовательно, использует только то, что байт OS выходит наружу. В Linux это, скорее всего, UTF-8, что означает, что вам придется иметь дело с отдельными блоками кода при выходе за пределы ASCII. В Windows я мог представить себе, что это устаревшая кодовая страница системы, что означает некоторую латынь 1 (СР 1252) в большей части западного мира.

+0

+1 thx. Знаете ли вы, есть ли какие-либо кодировки _any_, которые реально представляли бы деструктивную системную кодировку, имеющую разностные коды символов для [a-zA-z]? – Dori

+1

Существует EBCDIC, но это в основном наследие обычных систем (но очень живое в финансовом мире). Вы вряд ли столкнетесь с чем-то, что не является ASCII-производным в настоящее время. – Joey

+3

+1 ** «Lua ничего не знает о кодировке символов» **. Это в основном зависит от библиотек, на которых построен Lua, что в основном относится к механизму ОС по умолчанию. Таким образом, на него можно повлиять или определить, перестроив Lua с помощью различных наборов инструментов или конфигурации, используя другую ОС, изменив настройки ОС, изменив пользовательские настройки в ОС или изменив настройку потока (за пределами Lua). –