アプリ版:「スタンプのみでお礼する」機能のリリースについて

SJIS、EUC、UTF8、のどれがくるかわかりませんが、
かつ、その中で、どの言語がくるかわかりませんが、
その中で、日本語だけを、可能な限り容易に判別する方法は
ありますでしょうか?

また、既存のモジュールを可能な限り使用しない方法でもあります。

#pureperlで書かれていれば、移植はできますが

ひらがな、カタカナを抽出すればいいのもありますが、
仮対処にしかならず、漢字だけの場合の抽出が
できなくなってしまいます。


以下、参考までに・・
内部コードがSJIS?
#内部コードも、SJIS、EUC、UTF8のどれになるかわかりません。

UTF8の日本語がきたら、SJISになる
UTF8の中国語がきたら、化ける(捨てる対象
EUCの日本語が来たら、SJISになる
EUCの韓国語がきたら、化ける(捨てる対象)
SJISの日本語が来たら、そのまま

・・のような感じになってしまいますので。。

よろしくお願いします。

A 回答 (3件)

画像はヘッダーと呼ばれる部分に画像の種類が書かれていますが、文字はそうなっていません。



ですが、テキストエディタは、自動的に文字コードを判断しています。
文字数が少ないと間違いも多いですが。
仕組みは、コードの特徴で判断しているらしいのですが、詳しくは知りません。

なので、全体の言語の特徴で判断するのはどうですかね?

文中に複数の言語がある場合は、さらに難しいですが、ある程度は可能かと。
国が決まっているのなら、文章解析で、例外が少ない言語がその言語かと。
日本語解析なんかは、mecabなんかが有名です。

一番簡単なのが、ブラウザなら、送信情報に国の情報をいれるとか。
    • good
    • 0
この回答へのお礼

ありがとうございます。

確かに、テキストエディタって、普通に結構な率で
それぞれのコードを識別してくれますが、やはり
たまに化けてしまうことはありますね。

ですが、今回のは、他国語でなければ、最終変換先の
コードは、どれかに決まりますし、他国語を無視して
いいという条件もありますので、
(本当は、その他国語でも処理したいが、これは無視します)
これに合致するといえば、ご提案頂いたmecabが一番良いようですね

一度、かなに変換して、かなに変換成功して、かつ、それが
かなのコードの範囲であれば、日本語と判断できるのもありますので。

お礼日時:2012/10/12 20:32

まず考えてみてください. 「一」という文字が何語か, 判断できますか?



日本語に限定したとしても, SJIS/EUC/Unicode のどの文字コードであるかを正確に判定することは不可能です.

で日本語以外にありえない SJIS を除くと, EUC では言語を区別することができません. 一方 Unicode では判別する方法がないでもないです... が, 普通言語タグなんて使ってくれないよね (そもそも規格ですら推奨していないはず).
    • good
    • 0
この回答へのお礼

ありがとうございます。
「一」ですと、漢字だけの日本語が存在する可能性がありますので、判別が難しいかもしれません。

お礼日時:2012/10/12 20:29

ないです。


仮に文字コードをUTF8に限定したとしても先にあげられている、ひらがなやカタカナのような言語固有の文字ならともかくCJK統合漢字などは別に国コードでもない限り区別しようがないです。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!