昔のasearchは全角文字に弱かった
推測ですが文字コードを8bitずつに分割しているからかもしれませんtakker.icon
例えば「あ」は、文字コードが\u3042なので、asearchの内部では「0B」(文字コードはそれぞれ\u0030と\u0042)という文字列として扱われます 昔のasearchライブラリは8bitずつでしたが現在はUnicodeを利用しており、8bitずつの処理は無いはずです 増井俊之.icon
まじですかtakker.icon
はい! 増井俊之.icon
PRだそうかな~
いえ、現在のNota製品ではUnicode版が使われており、ライブラリも更新するよう言ったはずです 増井俊之.icon
てことは更新忘れですかねtakker.icon
最終更新が5年前だ
coffeescriptを使った古のコード
げ、だとするとマズいですね 増井俊之.icon
もしかするとGitHubにアップしそこねてるのかもしれません 増井俊之.icon
なるほtakker.icon
ちょっと確認してみます 増井俊之.icon
お願いします!takker.icon
やっぱり shokai.icon が更新してなかった模様 増井俊之.icon
違います。増井俊之.iconさんが私にpull request出してなかっただけですshokai.icon
連絡はしてましたがプルリクは確かに出してませんでした 増井俊之.icon
増井俊之.iconさんのforkの方はunicode対応されてたtakker.icon forkとか全然見ないので今まで気づかなかった
ありゃ、そうだっけ... 増井俊之.icon
shokaiがcoffeescriptのメンテしたくないのかもしれませんな 増井俊之.icon
まあですよねーtakker.icon
あれ?とするとScrapboxの検索でspyに対して印象が出るのはなぜ?yosider.icontakker.icon
む、Scrapboxで古いライブラリが使われてる可能性はありますね 増井俊之.icon
Helpfeelは直したはずなのだけど
とりあえずissue投げておきましたtakker.icon
imo.iconさんのスクショを勝手に使わせていただきました。すみませんm(_ _)m
オッケーです!imo.icon
試しに画像に出ている「印象」を8bitずつにばらしてみると……
印象→\u5370\u8c61
\u0053\u0070\u008c\u0061→Sp\u008ca
うんやっぱりそうだtakker.icon
入力文字列spyとSp\u008caが大文字小文字無視かつ一文字間違い(yと\u008c)で部分一致しているから、印象が候補に入る
ふ~~む?文字コードについては全くの素人なのでまたもうちょい時間をかけて理解に努めるかimo.icon
教えてくれてありがとう!
今まで文字コードは「それぞれの文字にはそれに対応する番号が割り振られているよ~」程度の認識だったので、今ちょい浅~く調べてUnicode一覧 0000-0FFFを眺めていたのですが、以下の認識で良いでしょうかね?imo.icon 一部には1つのコードに2文字以上の組み合わせが割り振られている(U+0000:NULとかU+0001:SOHとか)
いや、これは文字ではありません。制御文字、エスケープシーケンスと言われるもので、文字列処理において特別な命令を指し示すものですtakker.icon よく使われるものが改行文字U+000Dや水平タブU+0009でしょうか
program中の文字列内でよく\nや\tと表されるやつです
お、了解ですimo.icon
で、その中のひとつとしてSp\u008caがある
みたいな
それでちょい気になったこととして、u008caというコードが上記のUnicode一覧の中に見当たらないのですが、これってどういうコードなんでしょう?
あーごめんなさい。文字コード自体と、文字コードが表す文字とを混同してましたtakker.icon
\u008cという書き方は、JavaScriptで文字コードで文字を表現するときのやり方です。
e.g. const str = '\u0053'とすると、str==='S'となる
Sp\u008caは、文字S,p,\u008c,aをつなげた文字列を表しているつもりでした
\u008cを文字コードで表現していたのは、該当文字が存在せず文字で表しようがなかったからです
あーコードの\u0061は文字のaとしてってことですか、なるほどimo.icon
しかしまあこんな偶然があるもんだ
確かにspyaと入力しても出ますね~おもしろ
https://gyazo.com/da651710b0c7d9e88cd9c05eeb2dc948
自分から話題を振っておいてなんですが、文字コードは闇なので、余計な詮索深入りはしないことをおすすめします……takker.icon 時間がいくらあっても理解しきれません……
なるほどな~wimo.icon
面白いyosider.icon
asearchは非アルファベット?に弱い?yosider.icon
文字コードをビット演算するだけのシンプルな仕組みですからねtakker.icon
形態素解析を導入すれば、ローマ字から非アルファベットを検索することも可能になるかもしれませんが、逆に検索速度が落ちてしまうでしょうね 上の方に書きましたが弱くないです 増井俊之.icon
shokai.icon がアプデしてくれた模様
仕事速いimo.iconyosider.icontakker.icon
https://twitter.com/shokai/status/1396761700104167425 https://gyazo.com/0d91d8ace3b2baae965d436ee5cb8044
もうspyで印象が引っかからなくなった!
https://gyazo.com/8ccd401fec19a3502a1bb886dfaef9a4