Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix: break when the character is multibyte #8

Closed
wants to merge 2 commits into from
Closed

fix: break when the character is multibyte #8

wants to merge 2 commits into from

Conversation

shigetaichi
Copy link

#7

https://github.com/golang/text/blob/6c97a165dd661335ff7bce6104a008558123c353/encoding/encoding.go#L183
↑を参考に、修正案を書いてみました。

4096バイト以上の文字列が渡されたとき、transformerが4096バイト分ずつ文字列を取得してくるようです。(第二引数srcに渡ってくる値はmax 4096byte)

最後の数バイトが文字の途中か途中でないかを判断して処理breakし、次のTransform実行に引き継ぐようにしています。

また、utf8.Validによる判定も不要と判断しています。
長いutf8文字列を4096バイトずつ取得する場合、取得してきたバイト配列をutf-8として読み取れない場合があるからです。

@tomtwinkle tomtwinkle self-requested a review January 23, 2024 04:22
@tomtwinkle
Copy link
Owner

Pull Requestありがとうございます!
テストをいくつか修正&追加が必要だったのでこちらで対応を行いました。
#10

@tomtwinkle tomtwinkle closed this Jan 23, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants