日本語URLのコピーの仕方
概要
ScrapBoxではメンバーページはじめ、日本語のページを作りやすい。
たとえば↓
このURLをそのままコピーするとこんな感じになる。
「ウンフェルス」が謎の文字列になった状態は、日本語URLが変換(エンコード)された状態である。
このURLを特定の環境でそのまま読み込むと「not found(エラーページ)」に飛ばされる。
要するに、リンクがリンクとして機能していないのである。
この「not foundページ送り」はスマホで起こりやすい。
逆にPCでは対応済みのケースが多く、問題に気づきにくい。
YouTubeとかURLを自由に設定できる場所でもよく起こる
どういう時に起こるのか
ChromeやFirefoxで日本語URLをコピーすると変換が起こる。
EdgeやSafariでは起こらない。
対策
hを抜いてURLと認識させずにURLをコピーする
URLエンコード・デコードサイトを使う
EdgeやSafariなどのブラウザを使う
Chrome向け拡張アドオンを入れる
Scrapboxのページに限って、画面右上メニューの📄マークをクリック→「Copy readable link」で日本語URLを取得できる。
https://scrapbox.io/files/5f588c5f17ebc8001e7d0438.png
日本語URLをコピーした場合のデメリット
Twitter等でURLとして認識してもらえなくなる(URLが途中で切れる)。
https://gyazo.com/ccc73355e306276c91a8ec3f348d1b95
これはSwitchのAmazonページを「日本語URLのまま」貼り付けようとした場合。
日本語が入った瞬間、Twitterは「URLではない」と判断してリンクを切ってしまった。
どう対処すべきか
日本語URLでのコピーで一番楽なのはブラウザを変えること(たぶんSafari)。
ただしサービスによって扱いが違う。
たとえば↑で書いた通りTwitterでは認識してもらえなくなる。
「そのリンクだと飛べない」とスマホの人が言ったらこの原因を疑うべし
↑のデコードページでURLを再変換(デコード)するなりして、飛べるリンクを渡してあげよう
なぜ起こるのか
この辺は詳しい人の加筆希望
技術的に詳しいことを省けば「DiscordもTwitterも2バイト文字(日本語URL)を想定していないから」
要するに、開発側が悪いと言えば悪い。
HP作成の基本として「日本語URLはつくらない」というのがある。
すでに述べた通り「私は見れる」「私は見れない」が起こるため。
たとえばDiscordが変なURL(日本語URLをエンコードしたもの)を認識(デコード)する仕組みがあれば問題ないし、
Twitterが日本語URLをそのまま認識してくれるなら問題はない。
ただ制作陣(エンジニア)は英語でURLを作ることにしている
(というか、そうしないとだいたい不具合が起きる)
ひどい場合はアプリ開発者が日本語対応にしたのに、開発に使ったリソース(プログラムの部品)が2バイト文字を認識しなかったので「国産アプリなのに日本語を認識できない」なんてこともある
この場合もリソースが2バイト文字に対応するのを待つしかない