我做了一個程序,人們可以輸入4個字母,它會給你相應的unicode字符,它插入到textflow元素中。現在我遇到了很多問題,但最終我得到了一些幫助。現在,當我輸入「dddd」或「ddd1」作爲測試時,問題就出現了。大unicode問題 - AS3
我得到了錯誤 - 「在輸入中遇到了未配對的Unicode代理項」。
現在我花了2天時間來測試,並且絕對沒有任何事件觸發,這讓我可以在錯誤發生之前測試錯誤。
的代碼: 「?」
str = "dddd"
num = parseInt(str,16)
res = String.fromCharCode(num)
NOTE:事實上當誤差occurres RES等於在控制檯中......但如果你用if(res ==「?」)測試它,它將返回false。
我的問題: 現在我找啊找和abolutly發現這個錯誤在磚坯AS3參考沒有說明,但2天之後,我發現這個頁面的JavaScript:http://scripts.sil.org/cms/scripts/page.php?item_id=IWS-Chapter04a
它說, - 該代碼單元然而,在範圍0xD800-0xDFFF中,服務於特殊用途。這些代碼單元,稱爲代理代碼單元
所以,現在我與測試:
if(num > 0 && num < uint(0xD800)) || (num > uint(0xDFFF) && num < uint(0xFFFF)){
get unicode character.
}
我的問題很簡單,如果我理解這一點正確,這將實際防止錯誤的發生? - 我不是unicode專家,也不知道如何測試它,因爲有十個人的數千個字符,所以我可能錯過了一個,這意味着用戶偶然可能會得到錯誤,並有可能導致應用程序崩潰。
cool - 感謝您的時間和幫助:D –
ser du er fra dk。 Såmange tak for dinhjælp:D –
沒問題 - 時常回顧unicode規範總是很好 - 現代語言之間共享的一些問題。 :-) – JimmiTh