diff options
author | Alexander Holland <alexander.holland@live.de> | 2016-05-05 13:34:15 +0200 |
---|---|---|
committer | Alexander Holland <alexander.holland@live.de> | 2016-05-05 13:34:15 +0200 |
commit | f86cffd8e6cacb09cf59c27423c7e82c0e024aaa (patch) | |
tree | a18626307d30d307bcbee44ce33e953347f07ccb | |
parent | 9487a9b3c25f23942561eba20edce24f4be6f148 (diff) |
fix percent decode utf8 error
-rw-r--r-- | core/ustring.cpp | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/core/ustring.cpp b/core/ustring.cpp index 573c362389..730f7cfa3b 100644 --- a/core/ustring.cpp +++ b/core/ustring.cpp @@ -3629,13 +3629,14 @@ String String::percent_decode() const { CharString pe; - for(int i=0;i<length();i++) { - - uint8_t c=operator[](i); + CharString cs = utf8(); + for(int i=0;i<cs.length();i++) { + + uint8_t c = cs[i]; if (c=='%' && i<length()-2) { - uint8_t a = LOWERCASE(operator[](i+1)); - uint8_t b = LOWERCASE(operator[](i+2)); + uint8_t a = LOWERCASE(cs[i+1]); + uint8_t b = LOWERCASE(cs[i+2]); c=0; if (a>='0' && a<='9') |