背景 ユーザーにパスワードを入力してもらう時にクライアント側で絵文字の入力を禁止したかったので、雑に絵文字入力を判定するにはどうすればいいか考えました。 無理やり絵文字の入力を許すような仕組みにすることもできたかもしれませんが、絵文字は同じデータ値であっても環境によって表示される画像が違っていたり、サポートの有無もあるはずなのでパスワードとして使うのは適切でないでしょう。 事前知識 そもそも文字コードに関しての知識もあやふやだったので、それついて理解することから始めました。ここで簡単にまとめてみたいと思います。 文字コード 文字コード(もじコード)はコンピュータ上で文字(キャラクタ (コンピュータ))を利用するために各文字に割り当てられるバイト表現。もしくは、バイト表現と文字の対応関係(文字コード体系)のことを指して「文字コード」と呼ぶことも多い。 引用:Wikipedia つまり、文字デ
![[Android] 文字列に絵文字が含まれるか雑に判定する。 - Qiita](https://cdn-ak-scissors.b.st-hatena.com/image/square/3e3cedfc3f89ee8d0312a2ca790c6c58984836c5/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fqiita-user-contents.imgix.net%252Fhttps%25253A%25252F%25252Fcdn.qiita.com%25252Fassets%25252Fpublic%25252Farticle-ogp-background-afbab5eb44e0b055cce1258705637a91.png%253Fixlib%253Drb-4.0.0%2526w%253D1200%2526blend64%253DaHR0cHM6Ly9xaWl0YS11c2VyLXByb2ZpbGUtaW1hZ2VzLmltZ2l4Lm5ldC9odHRwcyUzQSUyRiUyRnFpaXRhLWltYWdlLXN0b3JlLnMzLmFtYXpvbmF3cy5jb20lMkYwJTJGNTk2OSUyRnByb2ZpbGUtaW1hZ2VzJTJGMTQ3MzY4MjQzMT9peGxpYj1yYi00LjAuMCZhcj0xJTNBMSZmaXQ9Y3JvcCZtYXNrPWVsbGlwc2UmZm09cG5nMzImcz1lMTZjYmY4OTNmY2E5MmZiNWE5N2I0OTlmODBkZjQxOA%2526blend-x%253D120%2526blend-y%253D467%2526blend-w%253D82%2526blend-h%253D82%2526blend-mode%253Dnormal%2526s%253D7090371e925e7753ddb63f9edad02d9d%3Fixlib%3Drb-4.0.0%26w%3D1200%26fm%3Djpg%26mark64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTk2MCZoPTMyNCZ0eHQ9JTVCQW5kcm9pZCU1RCUyMCVFNiU5NiU4NyVFNSVBRCU5NyVFNSU4OCU5NyVFMyU4MSVBQiVFNyVCNSVCNSVFNiU5NiU4NyVFNSVBRCU5NyVFMyU4MSU4QyVFNSU5MCVBQiVFMyU4MSVCRSVFMyU4MiU4QyVFMyU4MiU4QiVFMyU4MSU4QiVFOSU5QiU5MSVFMyU4MSVBQiVFNSU4OCVBNCVFNSVBRSU5QSVFMyU4MSU5OSVFMyU4MiU4QiVFMyU4MCU4MiZ0eHQtYWxpZ249bGVmdCUyQ3RvcCZ0eHQtY29sb3I9JTIzMUUyMTIxJnR4dC1mb250PUhpcmFnaW5vJTIwU2FucyUyMFc2JnR4dC1zaXplPTU2JnR4dC1wYWQ9MCZzPTFiNmIwODA3NzNmYjIyNTdmYjI4ZmI4ODFmNjJmMjI1%26mark-x%3D120%26mark-y%3D112%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTgzOCZoPTU4JnR4dD0lNDBrYWt1ZWtpNjEmdHh0LWNvbG9yPSUyMzFFMjEyMSZ0eHQtZm9udD1IaXJhZ2lubyUyMFNhbnMlMjBXNiZ0eHQtc2l6ZT0zNiZ0eHQtcGFkPTAmcz0zYWVhNzYwZTA0NDhjMzZjNzhkODM3NzM1NjY1MjIzOQ%26blend-x%3D242%26blend-y%3D480%26blend-w%3D838%26blend-h%3D46%26blend-fit%3Dcrop%26blend-crop%3Dleft%252Cbottom%26blend-mode%3Dnormal%26s%3D2d3a746662e3adf85cf91ac819c56109)