2015-05-25 4 views
1

Мне нужно сравнить содержимое переменной lua со строкой, имеющей испанские символы, например. если равен bisci œ n. , если myvar = "bisci - n" не работает, когда myvar содержит одно и то же значение. В документации Lua я не нашел ничего подходящего, кроме настройки локалей на http://www.lua.org/pil/20.html. Однако это также не работает.Как сравнить испанский символ в Lua

Как проверить на равенство (если это имеет значение, я использую Ubuntu 14,04)

+0

[Lua Unicode] (http://lua-users.org/wiki/LuaUnicode) может быть полезен. – ryanpattison

ответ

4

Это не проблема самой Lua.

> print("bisción" == "bisción") 
true 

Возможно, существует расхождение между кодировкой символов, используемой редактором исходного кода, и вашими источниками данных. Lua выполняет операцию сравнения на уровне байта. Достаточно иметь исходный файл Lua, закодированный, например, UTF-8, и данные, загруженные из файла с кодировкой UTF-16, и сбой сравнения.

+1

Спасибо. Это была проблема. Файл Lua был закодирован как iso-8859-1. Я использовал iconv для преобразования в UTF8. После этого он начал работать. Спасибо за вашу столь необходимую помощь – doon

Смежные вопросы