2015-04-04 213 views
1

我正在使用Lua製作一個關於拼音字母學習遊戲的應用程序,我有一個問題,我需要檢查拼音的長度,並且需要檢查它是否匹配我輸入的內容,但是我找到了所有拼音字母的長度爲2和,他們無法比擬的我所輸入的,這個例子如下:lua中的拼音字體

print(string.len("ð")  -- outcome is: 2 
print(string.len("pɛt")) -- outcome is: 4 
print(string.sub("pɛt",3)) -- outcome is:›t 

我該怎麼辦?

回答

1

感謝lhf和Cinch,根據你的提示,我終於弄清楚該怎麼做了,代碼如下,請讓我知道是否還有其他更聰明的方法。

a。通過計算拼音的長度,我只是將原始長度減去非單字節字母表:

string.len("pɛt")-string.len("pɛt", "[^\128-\193]", "")) 

b。通過檢查是相同的,因爲我輸入了什麼,我用string.gfind:

for tempLetter in string.gfind("pɛt", "([%z\1-\127\194-\244][\128-\191]*)") do 
     if theLetterITyped == tempLetter then 
       --content 
     else 
       --content 
     end 
    end 
2

string庫不支持UTF-8字符串。試試utf8庫。

+0

人說UTF8和UTF8沒有區別,還是要謝謝你@我試圖挽救其他的編碼例如lua的文件。在TextWrangler中的UTF-16,當我在模擬器上運行應用程序時,它顯示錯誤。 – 2015-04-05 12:17:58

2

Lua 5.2對非ASCII字符串沒有本地支持。 Lua 5.3支持基本的UTF-8,所以也許你應該嘗試使用Lua 5.3。

+0

您無法更改Corona SDK使用的Lua版本。 - 羅布奇蹟14年2月10日在2:17 <=有人說這在http://stackoverflow.com/questions/21632256/how-to-find-which-version-of-lua-do-i-use,作爲我正在使用Corona SDK模擬器來查看我的應用程序的輸出,是否有其他方法來更新其lua版本或任何其他模擬器可以向我介紹? – 2015-04-05 12:12:59

+0

哦,你正在使用Corona。看我的編輯 – Cinch 2015-04-05 12:25:59

+0

我看不到你編輯過的內容^^「 – 2015-04-05 17:13:24