Mercurial > hg > nginx
comparison src/core/ngx_string.c @ 4209:9679fc14c063
Fixed utf8 decode (ticket #25).
Patch by Alexey Kuts.
author | Maxim Dounin <mdounin@mdounin.ru> |
---|---|
date | Thu, 13 Oct 2011 13:56:41 +0000 |
parents | 61e4af19df9f |
children | 0a8e51a16484 |
comparison
equal
deleted
inserted
replaced
4208:470462cfa31b | 4209:9679fc14c063 |
---|---|
1209 size_t len; | 1209 size_t len; |
1210 uint32_t u, i, valid; | 1210 uint32_t u, i, valid; |
1211 | 1211 |
1212 u = **p; | 1212 u = **p; |
1213 | 1213 |
1214 if (u > 0xf0) { | 1214 if (u >= 0xf0) { |
1215 | 1215 |
1216 u &= 0x07; | 1216 u &= 0x07; |
1217 valid = 0xffff; | 1217 valid = 0xffff; |
1218 len = 3; | 1218 len = 3; |
1219 | 1219 |
1220 } else if (u > 0xe0) { | 1220 } else if (u >= 0xe0) { |
1221 | 1221 |
1222 u &= 0x0f; | 1222 u &= 0x0f; |
1223 valid = 0x7ff; | 1223 valid = 0x7ff; |
1224 len = 2; | 1224 len = 2; |
1225 | 1225 |
1226 } else if (u > 0xc0) { | 1226 } else if (u >= 0xc2) { |
1227 | 1227 |
1228 u &= 0x1f; | 1228 u &= 0x1f; |
1229 valid = 0x7f; | 1229 valid = 0x7f; |
1230 len = 1; | 1230 len = 1; |
1231 | 1231 |