半角カタカナを全角カタカナにして拾得する方法(inputタグ)

[上に] [前に] [次に]
けんと 2000/03/14(火) 23:47:53
ども、はじめまして
inputタグで送信した半角カタカナを全角カタカナにしてCGIで
表示する方法を教えて下さい
また、その逆も・・・

ぺぱーど 2000/03/15(水) 00:04:44
jcode.plを使えば簡単に出来ます.(jcode.plはとほほ掲示板に付属している)
変換したいデータ(シフトJIS)が$bufに入っている場合
&jcode'h2z_sjis(*buf);
とすれば半角カタカナが全角になります.

逆は
&jcode'z2h_sjis(*buf);
で出来ますが半角カタカナは表示しない方が良いので・・・.

無責任官庁 2000/03/15(水) 09:55:22
> 半角カタカナは表示しない方が良いので・・・.

最近はいちがいにそうとも言えませんね。
i−mode用のサイトの場合は、全角カナを使う方が、
文句言われる可能性大です。
(i-mode のカナ入力は、基本が半角カナ)

i-mode は転送量=通信料金になるんで、極力容量を減らそうという
努力が必要ですな。

Fuji.♪ [E-Mail] [HomePage] 2000/03/15(水) 15:04:35
半角カナは文字コードの指定等で問題がない場合には利用しても問題ない、ではないでしょうか。 (^_^;
表示できない環境が〜、というのは、基本的に無視して良いのですが(必要なフォントデータを入れれてない環境では普通正しく表示できないという意味)問題が発生する環境が〜、というのは考慮すべき問題かと思います。

HTML文書の場合は普通HTTPベースですから、この中での利用の範囲内であれば問題ないはずです。
使ってはいけないというのは、メールとニュースです。(HTMLメールってなにもエンコードされずに送付されるとすると、この中では半角カナは利用してはいけないことになりますね (^_^;)

あと、Shift-JISでは半角カナは1バイト、EUCの場合は2バイトですが、その辺の処理は問題ないですよね? (^_^;

ひみつ 2000/03/16(木) 01:23:43
Fuji.♪ writes:
>半角カナは文字コードの指定等で問題がない場合には利用しても問題ない、ではないでしょうか。 (^_^;
Shift_JISにもEUC-JPにも半角カナは存在しますから全く問題ないし、
ISO-2022-JPの時は駄目というか、駄目なんじゃなくてそもそも半角
カナが存在しないのだから使えるわけがないというだけのことです。
mailやnewsではISO-2022-JPがデファクトスタンダードという合意が
あるので、つまり半角カナは使えませんが、WWWでISO-2022-JPを
使うという合意は無いのでShift_JISとかで半角カナを表示することに
なんら躊躇する必要はありません。Unicodeにも半角カナはありますし。
i-modeが普及したから、とかいうのは何の関係もありません。

ぺぱーど 2000/03/16(木) 02:07:39
誰も「使うな」とか「問題がある」なんて言ってないけど?

ひみつ 2000/03/16(木) 02:11:32
>で出来ますが半角カタカナは表示しない方が良いので・・・.
理由が書かれてない辺りが敗因【謎】ではないでしょうか。

ぺぱーど 2000/03/16(木) 02:57:19
>敗因
勝ち負けを競っているかのような事を書く必要はないのでは?
#別に勝負なんてする気は無いので一人相撲でもやってれば宜し.

それに質問者が要求している事を解決出来る方法はちゃんと示してある訳で.

件の部分は質問に対する回答には直接関係が無い事であり質問者がそれについて質問したなら回答するで十分では?
#まあ質問も無いのに既に御丁寧に解説されているから回答の必要は無くなったけど.

てきとー 2000/03/16(木) 03:01:58
> 半角カタカナは表示しない方が良いので・・・.
の理由が知りたいです。

ひみつ 2000/03/16(木) 21:50:57
>> 半角カタカナは表示しない方が良いので・・・.
>の理由が知りたいです。
同じく。

ぺぱーど 2000/03/16(木) 23:41:53
文字化けの原因になりうる.

てきとー 2000/03/17(金) 00:00:35
> 文字化けの原因になりうる.
なるほど。

ひみつ 2000/03/17(金) 00:53:08
>> 文字化けの原因になりうる.
>なるほど。
何がなるほど???

てきとー 2000/03/17(金) 01:08:28
そういう理由だったのか、という意味です。

ひみつ 2000/03/17(金) 01:12:46
>そういう理由だったのか、という意味です。
なるほど。
てきとーさんの「なるほど」の意味だけは理解できました。

てきとー 2000/03/17(金) 01:15:27
そういうものです。
まあ、断言するということは何らかの根拠があるのでしょう。

ちなみに、僕は使用を薦めない派(謎)です。
無意味に攻撃される恐れがあるから、という理由で。
誰に攻撃されるのかさっぱりわかりませんが。

ぺぱーど 2000/03/17(金) 02:00:49
>無意味に攻撃される恐れがあるから、という理由で。
それはきっと「パソコン通信あがりのインターネット参入者」という偏見がらみの事ね.
これを持ち出すと宗教戦争的になるので敢えて「文字化け」だけを出してたんだけど・・・ま良いか.

#そろそろ「解決」チェックして欲しいの心.(^^;

てきとー 2000/03/17(金) 03:30:04
偏見とかで虐待されるから困ってしまいます。


> #そろそろ「解決」チェックして欲しいの心.(^^;
御意。

んー 2000/03/17(金) 06:59:08
一部のキャッシュプロクシサーバに日本語文字コードを変換
するものがあるそうですが。
http://www.yahoo.co.jp/docs/help/mojibake/sonota.html
このことを考えると、
> 半角カタカナは表示しない方が良いので・・・.
ではなく(iMode専用などは別として)半角カタカナは使用しない方が
文字化けの問題に悩まされる局面の増加を抑える一助になるのでは
ないかと思えました。

ひみつ 2000/03/17(金) 07:12:16
ヤフーのは、なんでじゃあHTTPヘッダに入れないんだかさっぱり
わからないのですが。

フシギダネ 2000/03/17(金) 09:04:56
結局のところ
>inputタグで送信した半角カタカナを全角カタカナにしてCGIで
>表示する方法を教えて下さい
に対して
>jcode.plを使えば簡単に出来ます.
という事はわかったのですが、
例えばperlじゃなくて、javascriptやjavaでやろうとすると、どうなんでしょうか?
作り込む以外にないのでしょうか?

三原克大 [E-Mail] 2000/03/17(金) 10:38:00
突然に割り込みを。

> 例えばperlじゃなくて、javascriptやjavaでやろうとすると、どうなんでしょうか?
> 作り込む以外にないのでしょうか?
Java で変換機能を持ったクラスを作った方がいらっしゃれば名乗り出てください。
Java Platform API には見当たらない(探し方が悪い?)ので
誰かが作らないと使えません。

Java だと、提供されている文字列 java.lang.String クラスは
Unicode のみを扱うようになっていますから、
JIS X201 のカナも変換したならばそのまま保持するはずです。
丁寧に final 指定(Java 言語で、継承不可という意味)されていて
独自に拡張することも出来ませんし。
あとは外部との入出力でコード変換を行う
各種 Reader, Writer クラスがどのような変換を行うかですが、
これは私は経験が少ないので分かりません。

Fuji.♪ [E-Mail] [HomePage] 2000/03/17(金) 11:27:14
ひみつさん:
>ISO-2022-JPの時は駄目というか、駄目なんじゃなくてそもそも半角カナが存在しないのだから使えるわけがないというだけのことです。

世の中にはメールクライアントの設定で半角カナを許可するJISコード設定を持つものが出荷されているのですよね。非常に高いシェアを誇る例の怪しいやつですが。
確かにJISって書かれてたら間違ってないけどさぁ。charset="iso-2022-jp"って出すならそんなことはして欲しくないですよねぇ。

・・・これじゃ愚痴だ。 (^_^;

ひみつ 2000/03/17(金) 11:55:38
>世の中にはメールクライアントの設定で半角カナを許可するJISコード設定を持つものが出荷されているのですよね。非常に高いシェアを誇る例の怪しいやつですが。
確かにJISって書かれてたら間違ってないけどさぁ。charset="iso-2022-jp"って出すならそんなことはして欲しくないですよねぇ。

もう直ってます。

Fuji.♪ [E-Mail] [HomePage] 2000/03/17(金) 13:10:49
>もう直ってます。

あいにくとExpressではない方ではいまだに持ってます。

ひみつ 2000/03/17(金) 14:12:18
なにがあいにくなのか理解できませんが、そのためのMIMEです。

Syn [E-Mail] 2000/03/17(金) 14:43:23
> そのためのMIMEです。

IE3 に付属のアレ (どれ) は、
Content-Type: text/plain; charset=iso-2022-jp
Content-Transfer-Encoding: 8bit
などとゆーウソを平気でついてましたね。
いまは直ってますけど。

> HTMLメールってなにもエンコードされずに送付されるとすると、この中では半角カナは利用してはいけないことになりますね (^_^;

そのための MIME Multipart や Quoted-Printable です。

Fuji.♪ [E-Mail] [HomePage] 2000/03/17(金) 16:33:18
>そのための MIME Multipart や Quoted-Printable です。

ふむ、と思ったのですが、ここで単純な疑問が思い浮かびました。
JISベースで漢字交じりで半角カタカナを使用した場合、charsetは何を指定したら良いのでしょうか? (^^;(つまり、デコード後テキストのcharsetは?ということです)
katakanaやX0201だと7bitのASCIIコード+8bit領域の半角カタカナだけですよねぇ・・・。

ISO-2022-JPではJIS X 0201の半角カタカナは使用禁止、と明言されてますし(注:RFC 1468)、ISO-2022-JP-2では互換性を保つということで利用できないと思いますし。(明確な禁止は見つけられませんでした。読み方が甘かったかな? (^^;)

ひみつ 2000/03/17(金) 16:46:17
ところで何故メールの話になっているのでしょう。
HTML4的には全く問題ないはずなのですが。

ひみつ 2000/03/17(金) 16:46:43
ていうかHTML4の話でもありませんでしたか。もともと。
御意(謎)。

2000/03/17(金) 23:13:41
>>ISO-2022-JPの時は駄目というか、駄目なんじゃなくてそもそも半角カナが存在しないのだから使えるわけがないというだけのことです。
>世の中にはメールクライアントの設定で半角カナを許可するJISコード設定を持つものが出荷されているのですよね。非常に高いシェアを誇る例の怪しいやつですが。

WWWの話に対してMAILの応答をするのはどうして?

ぺぱーど 2000/03/18(土) 00:24:21
>WWWの話に対してMAILの応答をするのはどうして?
実は全く無関係とは言い切れないんです.(^^;

Aさんがウェブサーフィンしていたらあるページで面白い物を発見.
友達のBさんに教えてあげようと思いました.
そのページのURLをメールで送ればいいのにご丁寧にも
コピー&ペーストでメール本文に貼り付けました.

もうお分かりですよね.
貼り付けた中に半角カタカナが混じっていて・・・.
こういう事もあるから使わない方が良いかなと.

てきとー 2000/03/18(土) 01:43:52
>もうお分かりですよね.
全然わかりません。
いや、言いたいことはわかるのですが、釈然としません。

Fuji.♪ [E-Mail] [HomePage] 2000/03/19(日) 13:53:43
WWWの話だったら、E-mailもWWWの一部ですが?

HTML文書がメールにくっついているかHTTPサーバ上に置いてあるかの違いだけで、これで特に区別する理由はないかと。

2000/03/21(火) 10:36:01
>WWWの話だったら、E-mailもWWWの一部ですが?

E-mailはInternetの一部であってWWWの一部ではないような。

2000/03/21(火) 11:01:05
http://www.ascii.co.jp/ghelp/9/000992.html

Syn [E-Mail] 2000/03/21(火) 12:03:00
[[解決]]
HTML 文書は WWW にもメールにも Internet にも依存しませんし、
元記事のかたの質問にたいしては jcode'h2z_sjis で解決してます
し、半角カナを使ってもよいか悪いかといえば状況依存ですし、と
りあえずこのあたりで終了にしてはいかがでしょうか。

ちなみに:
> JISベースで漢字交じりで半角カタカナを使用した場合、charset
> は何を指定したら良いのでしょうか? (^^;(つまり、デコード> 後テキストのcharsetは?ということです)

JIS ベースとゆー前提があるのなら、半角カナが使用できないのは
エンコードしようとしまいと同じですよね。
べつに絶対に ISO-2022-JP で送らなければならないわけではない
ですから (クライアントが読めるかどうかは別として) 、
Content-Type: text/html; charset="Shift_JIS"
Content-Transfer-Encoding: quoted-printable
ってことになるでしょう。
げんに、うちに来る外国からの spam には
Content-Type: text/html; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
ってのがあります (8bit で送ってくるのがそれ以上に多い(^^;) 。
半角カナを混ぜてるのに ISO-2022-JP を指定してるとしたら、送
信側がタコだった、とゆーことになるだけではないでしょうか。

ただし、 2 バイト文字の片方だけを quote した場合、クライアン
トがそれをどうデコードするか (デコード後にちゃんと 2 バイト
文字に戻すかどうか) は保証できませんけど。
base64 で添付ファイル化するほうが現実的かもしれません。

# というわけで強引に解決

[上に] [前に] [次に]