Parcourir la source

fix handling of utf16 surrogate pairs!

git-svn-id: http://svn.code.sf.net/p/cjson/code@46 e3330c51-1366-4df0-8b21-3ccf24e3d50e
Dave Gamble il y a 12 ans
Parent
commit
8c60f99c72
1 fichiers modifiés avec 1 ajouts et 1 suppressions
  1. 1 1
      cJSON.c

+ 1 - 1
cJSON.c

@@ -174,7 +174,7 @@ static const char *parse_string(cJSON *item,const char *str)
 						if (ptr[1]!='\\' || ptr[2]!='u')	break;	/* missing second-half of surrogate.	*/
 						sscanf(ptr+3,"%4x",&uc2);ptr+=6;
 						if (uc2<0xDC00 || uc2>0xDFFF)		break;	/* invalid second-half of surrogate.	*/
-						uc=0x10000 | ((uc&0x3FF)<<10) | (uc2&0x3FF);
+						uc=0x10000 + ((uc&0x3FF)<<10) | (uc2&0x3FF);
 					}
 
 					len=4;if (uc<0x80) len=1;else if (uc<0x800) len=2;else if (uc<0x10000) len=3; ptr2+=len;