「【35アバター対応】フリルマリンビキニ (フルセット版)」を かぷちやのぶーす で購入しました! https://capettiya.booth.pm/items/5739125 #booth_pm
美少女のもみあげと裾についておはなしします
🔞性欲駆動開発アカウントにつき覚悟してください
Avatar icon: [𝕏] nunyu31
Header: [𝕏] hataraku125
弐寺: 1751-5340
「【35アバター対応】フリルマリンビキニ (フルセット版)」を かぷちやのぶーす で購入しました! https://capettiya.booth.pm/items/5739125 #booth_pm
「【11アバター対応】White Lily Archive【VRChat想定】 (ライム用-lime-✨200円引きセール中!!✨)」を Lala à la made で購入しました! https://aramodo.booth.pm/items/5773333 #booth_pm
This account is not set to public on notestock.
This account is not set to public on notestock.
横流しできる stdout なら狭間だろうとそのまま書いちゃっていいわけで、UTF-16 にエンコードしなおさないといけない Windows 特有の実装っぽさがある
0x80 とか 0xff みたいなどう頑張っても UTF-8 じゃないバイトに対しては一発でこのエラーを吐くというわけですね
「実は write() の狭間なだけかもしれない」事案も IncompleteUtf8 でいったんキャッチして、ギリギリ正当な可能性があるならエラーにしないという実装になっていてえらい
stdin/stdout/stderr に相当するオブジェクトへの Read/Write 実装でエンコードしてるのかな
https://github.com/rust-lang/rust/blob/master/library/std/src/sys/pal/windows/stdio.rs
やっぱりコンソールかどうかで判定してるのか(そしてコンソールである場合は UTF-8 として正当なバイト列しか書き込めないと)
たしかどっかの層で UTF-16 に書き直してるみたいなのを見たんだけどどの層でやってるかを覚えてない(最終出力先がターミナルなら常に UTF-16 にしている可能性もある)
Rust でも println!() するのと stdout() に writeln!() するのでは結果が違ったりするんだっけ(特に Windows で)
ソースのエンコーディングをそのまま採用するみたいな挙動が多かったのか(最近は特定のエンコーディングのソースしか許さない、あるいは文字列はリテラルで明示的に UTF-8/16/32 にエンコードされて解釈するように指定できるのが主流っぽそう)
PerlやPythonが文字エンコーディングをふわっとした扱いにしてるせいでcp932とEUC-JPとUTF-8とUTF-16LEの混在環境で苦しんでる中、Rubyはエンコーディングと文字列をペアにしてて頭いいなあと思ったんだけど、だいたい統一が済んだ今となってはおもしろ設計っぽく見えてしまうのかもしれない
CGIというより、Ruby1.9の頃は文字エンコーディングの過渡期で考え得るすべてのエンコーディングでファイルが存在していたのでああなったという印象がある
code unit: 符号化された文字列を構成する最小単位のこと。UTF-8 なら1バイト、UTF-16 なら2バイト、 UTF-32 なら4バイト。
code point: 「U+nnnn」で表現される単位のこと。サロゲートペア等は上下合わせて1つとカウント。 1つ以上の code unit の組み合わせ。
(EDIT: ↑これちょっと違うかも……)
grapheme cluster: カーソルを「1つ動かす」ときに飛ばされる単位。1つ以上の code point の組み合わせ。
> ...で、この変更は、この特別扱いをやめて、Encoding::UTF_16 については何らかの文字列処理(のエンコーディングを取り出す処理)をしても動的に LE/BE にはしないようにしました。つまり、利用できる文字列処理が凄く少なくなりました。処理前に、先にアプリケーションでチェックして LE か BE か設定しておいてください。...
プロと読み解く Ruby 3.2 NEWS - クックパッド開発者ブログ
https://techlife.cookpad.com/entry/2022/12/26/121950
This account is not set to public on notestock.
once_cell 自体の機能はまだ入ってなくて悲しいみたいな話をついこの間した気がするが、それももうすぐ入るのはかなり良い話
待望のLazyCell/LazyLock安定化間近! - paild tech blog
https://techblog.paild.co.jp/entry/2024/05/30/142043