You've already forked json-iterator
							
							
				mirror of
				https://github.com/json-iterator/go.git
				synced 2025-10-31 00:07:40 +02:00 
			
		
		
		
	fix: invalid unicode while binary to string
This commit is contained in:
		| @@ -180,9 +180,9 @@ func readHex(iter *jsoniter.Iterator, b1, b2 byte) byte { | ||||
| 	} | ||||
| 	ret *= 16 | ||||
| 	if b2 >= '0' && b2 <= '9' { | ||||
| 		ret = b2 - '0' | ||||
| 		ret += b2 - '0' | ||||
| 	} else if b2 >= 'a' && b2 <= 'f' { | ||||
| 		ret = b2 - 'a' + 10 | ||||
| 		ret += b2 - 'a' + 10 | ||||
| 	} else { | ||||
| 		iter.ReportError("read hex", "expects 0~9 or a~f, but found "+string([]byte{b2})) | ||||
| 		return 0 | ||||
|   | ||||
| @@ -22,11 +22,11 @@ func TestBinaryAsStringCodec(t *testing.T) { | ||||
| 	}) | ||||
| 	t.Run("non safe set", func(t *testing.T) { | ||||
| 		should := require.New(t) | ||||
| 		output, err := jsoniter.Marshal([]byte{1, 2, 3, 15}) | ||||
| 		output, err := jsoniter.Marshal([]byte{1, 2, 3, 23}) | ||||
| 		should.NoError(err) | ||||
| 		should.Equal(`"\\x01\\x02\\x03\\x0f"`, string(output)) | ||||
| 		should.Equal(`"\\x01\\x02\\x03\\x17"`, string(output)) | ||||
| 		var val []byte | ||||
| 		should.NoError(jsoniter.Unmarshal(output, &val)) | ||||
| 		should.Equal([]byte{1, 2, 3, 15}, val) | ||||
| 		should.Equal([]byte{1, 2, 3, 23}, val) | ||||
| 	}) | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user