読み込まれたファイルがUNICODEかどうか – プログラミング – Home

読み込まれたファイルがUNICODEか...
 
通知
すべてクリア

[解決済] 読み込まれたファイルがUNICODEかどうか


HRS
 HRS
(@HRS)
ゲスト
結合: 22年前
投稿: 7
Topic starter  

タイトル通りですが、
ファイルを読み込んだときに、(CStringクラスに格納したい)
その読み込んだファイルがシフトJISなのか、UNICODEなのかを
調べる方法はありますか?


引用未解決
トピックタグ
YuO
 YuO
(@YuO)
ゲスト
結合: 22年前
投稿: 320
 

BOMの有無程度が限界です。

BOM無しのファイルの判定は,ファイルを調べて,
各文字コードとして不正なバイト列が無い物,全てにあるなら少ない物,
というような感じで判定するしかないと思います。
#複数の文字コードとして扱えるなら……デフォルトを決定しておくしかないです。


返信引用
HRS
 HRS
(@HRS)
ゲスト
結合: 22年前
投稿: 7
Topic starter  

例えば、Microsoft Internet Explorerのように、
読み込んだHTMLを文字コードを自動判別する
っていうようなことはどうやっているのでしょうか?


返信引用
PATIO
(@patio)
Famed Member
結合: 4年前
投稿: 2660
 

HTMLは、タグ中に使用するコードセットを記述する部分があると思いますけれど。
指定が無ければ、ブラウザ側のデフォルト設定が生きると思います。
実際、この辺の指定がないとページ全体が化ける事がありますし。


返信引用
PATIO
(@patio)
Famed Member
結合: 4年前
投稿: 2660
 

要は、IEでも化ける事があるという事は、自動判定には限界があるということです。

確実に行いたいのであれば、ファイルのフォーマットとしてコードの指定を
ヘッダ部の情報等で取り出せるようにする必要があると思います。
エディタ等で自動判定をするものもありますが、誤認識の可能性があることを
明示してあるのが普通だと思います。

やるなら、ファイル全体の文字を特定のコードであると仮定して文字コードに無い文字が
無いかどうかを判定して、もっともコードに無い文字が少ないコードで判定するしか
無いでしょう。この方法だとファイルが大きくなると使い物にならないくらい遅くなる
かもしれませんけれど。普通はファイルの先頭数バイトか数十バイトで判定していると
思いますが、同然、誤認識は避けられません。半角カナが絡むと難しい場合もあるでしょ
う。


返信引用
HRS
 HRS
(@HRS)
ゲスト
結合: 22年前
投稿: 7
Topic starter  

> HTMLは、タグ中に使用するコードセットを記述する部分があると思いますけれど。
> 指定が無ければ、ブラウザ側のデフォルト設定が生きると思います。
確かにそうですね。わかります。

> 普通はファイルの先頭数バイトか数十バイトで判定していると思いますが、
> 同然、誤認識は避けられません。半角カナが絡むと難しい場合もあるでしょう。
ああ、面倒臭いです。

まぁ、なんとか頑張ってみます。
ありがとうございました。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました