モバイルアプリとウェブサイトをリリースし、英語を話すユーザーと英語を話さないユーザーが利用できるようにするとします。
技術スタック全体ですでにUTF8エンコーディングをサポートしています。しかし、UTF8で表現可能な文字の全範囲をユーザーが入力できるようにすることは、一般的に適切なポリシーですか?そうでなければ、どうやって人々は
特に:
(タッチスクリーンキーボードを介して)1つのデバイスで入力文字として提供される場合があり、別のデバイスで同じ文字を再入力してレンダリングする必要があります。
例えば、
フォーラム投稿。こちらがスカルとクロスボーンの文字「☠」(UTF 9760)です。一部のサードパーティのAndroidキーボードは、入力するのに簡単な方法を提供しますが、ブラウザで正方形のボックスとしてレンダリングされる場合があります。一般に、異なるデバイスで異なるフォントを使用する場合があります(たとえば、高ppiデバイスと低ppiデバイスでは異なるフォント)。そのため、ユーザーが1つのデバイスで自由にテキストを入力できる(正しく表示される)リスクがあります。その同じ文字は、代替フォントの別のデバイスではレンダリングできません(= UXは失敗します)。そのため、フォーム検証を通じてそのような文字の入力を防止することは賢明なようです。もしそうなら、許容される文字のセットは通常どのように決定されますか? (たとえば、一般的なWebセーフフォントで使用できる文字の大きなリストがあります)。
新しいパスワードを作成する場合、Androidキーボードは、¥(円)文字を入力するように人々に促します。ただし、これを許可すると、ほとんどの米国のユーザーは、キーボードに¥を入力する明確な手段がないPCで同じサービスにログインするときに行き詰まります。 Oops-UXが失敗しました。
私はASCIIで生活しました。ここでのベストプラクティスは何ですか?
非常に正当な理由がない限り、制限するべきではありません。ユーザーは時々、予期せぬ方法でイノベーションを起こすことができます(テスト用のティーバッグがあり、消費者はそれをそのように求め始めたと言われています)。
パスワード:想像できる唯一の欠点は、ユーザーがパスワードを繰り返すことができないことです。この場合、メールでパスワードをリセットできます。
または、オンスクリーンキーボードを提供できます。これには次のような利点があります。
ユーザー名:ここには、十分な理由があります(ユーザーが他の名前を模倣している)。したがって、いくつかの種類の制限を実装できます。
UTF-8の目的をよく理解していないと思います。これは、あらゆる種類の文字を格納できるようにする単なるエンコーディングです。エンコーディングの選択はより技術的な決定であり、多言語アプリケーションを作成していてUTF-8を選択できるため、必要なエンコーディングのように見えます。
データベースやファイルシステムに関連するエンコーディングではなく、ユーザーに何を表示するか、何を受け入れるかを決定するのはアプリケーションです。ファイルシステムを変更するのは容易ではありませんが、アプリケーションの動作は定期的に変更される可能性があるため、UTF-8は、後で制限や問題を回避するための最良の選択です。
アプリケーションレベルの検証とフィルターを使用して、ユーザーとアプリケーション間のデータを制御します。