質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Webサイト

一つのドメイン上に存在するWebページの集合体をWebサイトと呼びます。

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

データベース設計

データベース設計はデータベースの論理的や物理的な部分を特定する工程です。

Q&A

解決済

4回答

1273閲覧

会員登録等における半角入力禁止について

uni_tt

総合スコア15

Webサイト

一つのドメイン上に存在するWebページの集合体をWebサイトと呼びます。

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

データベース設計

データベース設計はデータベースの論理的や物理的な部分を特定する工程です。

0グッド

0クリップ

投稿2018/09/30 15:18

編集2018/09/30 15:22

会員登録サイトなどで住所などを登録する際になぜ全角でしか、
入力できないサイトが存在しているのでしょうか。

例えば番地などは「1-2-3」ではなく「1-2-3」でないと登録できません。
住所の文字数は一定の長さではないため、データ型は可変長文字列であると考えています。
「varchar」や「nvarchar」には全角・半角の混在ができないという制約はなかった思います。
またそのような制約があったとしても、
DB登録前に半角全角の変換を行えば良いのでは、と考えてしまいます。

個人的には全角数字よりも半角数字の方が、見た目的に好きなのでいつも半角で入力するのですが、
サイトによっては、はじかれてしまうため、少し面倒です。
またスマホの場合、全角文字を入力するのは若干手間がかかる場合もありますので、
かなりユーザに優しくない設計ではないのでしょうか。

[追記]
調べたところ下記のような内容が載っていました
ウェブサイトの住所入力で全角数字を求められるのがウザい。
このなかのどれかが答えなのでしょうか。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答4

0

このなかのどれかが答えなのでしょうか。

どれでもあるしどれでもない、システムごとに理由は違う、というのが答えです。

例えば他の理由として挙げられるのは、

  • 初期開発で全角文字だけを受け付けるように作ってしまい、改修コストが確保できないためそのまま放置している
  • 全角のみ受け付けるようにした方が利便性が高いと思っている人が設計している
  • 半角を入力できることで利便性が向上すると思っていない人が設計している

などなど。
サーバ側の仕様がフロントにもそのまま踏襲されている場合がほとんどなような気がしますね。
内部的に全角で扱いたいから、入力も全角で縛っちゃおう、的な。
ここで文句を言ってもどうしようもないので、ブラウザ拡張機能を作ったりスマホ用の特殊ブラウザを作ったりして自分自身で回避するしかないでしょう。

投稿2018/10/01 05:45

spookybird

総合スコア1803

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

「なぜどちらか片方しか受け付けないのか」についてはいいとして「なぜ全角なのか」について考えてみました。

昔から使われているデータベースであることから文字集合はUnicodeではなくJIS X 0208を使っているでしょう。
JIS X 0208は、英数字は1種類しか含みません。全角半角の区別はありません。
JIS X 0208のみを使える文字コードだった場合、必然的にJIS X 0208の英数字を使うことになり、後世それは全角文字に対応付けられます。
また、ISO-2022-JP(いわゆるJISコード)・EUC-JP・Shift_JISのようにJIS X 0208と英数カナを含む文字集合JIS X 0201を混ぜて使うことができる文字エンコーディングを使っていた場合ですが、0201に含まれる文字は全て0208に含まれます。
ここで、「英数字は半角」というのは、0201と0208を混ぜて使うことに相当し、「英数字は全角」は0208のみを使うことを意味します。
0208に統一した方が自然だという考えが成り立ちそうです。
また文字コードによっては0201が1文字1バイト、0208が1文字2バイトになったり、0201と0208の境で切り替えコードが入ったりと、処理が複雑になるものがあります。
これを避けた可能性も考えられます。

投稿2018/10/01 16:33

ikadzuchi

総合スコア3047

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

示されたサイトに書いてある中では、「技術者のの怠慢」でしょう。
ユーザーインターフェース、ユーザーエクスペリエンスが重視されるようになってきているので、少しずつ改善されるかと思います。

住所の番地までの部分、電話番号などは正規化してDB保存して良いと思います。名前などと違ってコードなので。名前は駄目です。
住所の番地の前までの部分を住所コードに変換して保存しても良いと思いますよ。

投稿2018/10/01 01:56

otn

総合スコア84499

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

個人的には全角数字よりも半角数字の方が、見た目的に好きなのでいつも半角で入力するのですが、

サイトによっては、はじかれてしまうため、少し面倒です。

それはユーザー側の都合です。
DBに登録する時には「原則としてユーザーの入力はそのまま登録するもの」というのがあります。
入力したものと登録したものが違ってはユーザーが困惑しますよね。
では、登録時に半角→全角に変換し、表示時に全角→半角に変換しては?となるかもしれませんが、それでは意味がありません。

特に業務で使う情報は半角全角が混じっていては文字情報に統一性に欠けるため、住所など数字も混在できるものは全角で統一されているところも多いです。
幾つかは提示されたリンクにあるような理由もないわけではないと思いますけど、役所で住民票をだしたことはありますか?あれって全角で印字されていませんか?
日本語は基本的に全角文字ですので、そのような慣習もあるかと思います。
確かにスマートフォン対応まで加味すると不親切に思える部分がありますが、
スマートフォン・携帯電話の入力で文字と数字を混在させる時点で入力モードを変える必要があって既に面倒なので、「いち」→変換 「に」→変換 「記号」→「全角」→ハイフン とするのとそう負担は変わらないとは思います・・。

投稿2018/09/30 21:45

m.ts10806

総合スコア80850

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問