2017-08-08 36 views
0

爲什麼模擬toLowerCase和toUpperCase方法對GWT中的字符串不同?GWT'字符串'toLowerCase和toUpperCase仿真

public String toLowerCase() { return asNativeString().toLowerCase(); }

public String toUpperCase() { return asNativeString().toLocaleUpperCase(); }

大寫的方法是做區域設置特定的轉換,這是造成問題的我們與土耳其用戶。有沒有好的解決辦法,使toUpperCase工作類似於toLowerCase

代碼: https://github.com/gwtproject/gwt/blob/a90832fec9a56f4cb83ed009c7048e0a8d196fe8/user/super/com/google/gwt/emul/java/lang/String.java#L708

回答

1

這是一個錯誤,而在2.8.0迴歸。在任何情況下,你都不應該依賴toUpperCase()toLowerCase()輸出,因爲它們根據定義的語言環境而定(儘管在GWT中不應該這樣,爲了向後兼容,正如鏈接文件中的註釋所述);你應該通過一個明確的區域設置,最有可能的是Locale.ROOT