Fix JSON body with multibyte strings. #34
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Added new test "multibyte character body" which would fail as it was.
_rawbody gets send to the data handler of the express
raw-data
handler, which validates the data.length is equal to the content-length header. Converting the data to a string changes the length from bytes to characters, so this failed every time with multibyte characters.Set _rawBody to retain the length in bytes (it remains a buffer), and it converted to string only when
body
getter is called._bodydata
seems to only be used if something externally sets it via thebody
setter, so I did not want to change that.(also fixed axios version to 1.4 so the userAgent test would pass).