R 4.2のWindowsの文字コード関連にちょっとだけコントリビュートした話

R 4.2がいよいよ4月22日にリリースされます。

数か月前に見たときは、「ほんとに出るのか...?」という感じでしたが、出るみたいです。すごい。 まあ実際、ここ数か月はWindowsでR-develを使ってるんですが、特に深刻なバグとか出くわしたことないので大丈夫そうな感じします。

ちなみに、そんなに大した貢献はしてないんですが今回のリリースノートには私の名前も載っています。

The clipboard connection now works also with text in other than the current native encoding (PR#18267, with Hiroaki Yutani). Text is always pasted to the clipboard in UTF16-LE and the encoding argument is ignored.

これはどういう問題だったかというと、具体的には

read.csv("clipboard")

が非ASCII文字が入ってるとうまく動かない、というものでした(参考:[Rd] R on Windows with UCRT and the system encoding)。 なぜこういう問題があるかというと、RのエンコーディングUTF-8になることで、Rとそれ以外のアプリケーションで文字コードが異なる、という事態が起こりえるからです(むしろ、おそらく現時点ではOSの文字コードUTF-8にしている人は少なそうなので、多くの人はこの問題にあたります)。その場合も UTF-16E として読み書きすれば文字化けせずやり取りできるのですが、R-develではそのあたりの考慮が抜けていました。

というのを、自分で直すほどの能力はないので、ただバグ報告して直してもらった、というだけの話でした。

ちなみに、同じような理由で reprex パッケージ(というかその内部で使われている clipr パッケージ)にも文字化けのバグがありました。 こっちはもう clipr に pull request を送って修正してもらったので大丈夫です。

ということで、人知れず平和は守られたのであった...、という話でした。

もちろんまだこういうバグがあるかもしれないので、余裕がある人はリリース前にR-develを試して問題ないか確認しましょう!