Top > プログラミング > .NET Tips> 文字コードを判別する

文字コードを判別する」への評価、コメント

評価

良い / 悪い = 27 / 1 (「良い」の割合 = 0.964 , 人気度 = 1.395

評価する

コメント一覧


通常のコメント
匿名 2020/01/8 (Wed) 19:13:58
いつも拝見させていただいております。


通常の「常識的に用いる範囲内での文字コード判定は、判定する素材がファイルである場合、余程特殊でない限りは、IEで判定させるのが最も簡易で間違いがないと、私見の範囲内では考えています。


ファイルをIEにドロップして「ファイル」→「名前をつけて保存」でダイアログボックスに表示されているエンコード欄に示されているコードが、そのファイルの文字エンコード形式になります。


またWindows用バイナリエディタ等で読み込ませると、自動的に判定しくれます。この時に文字化けをする場合、各種コードを変更してみて文字化けが出ないコードが該当文字コードと判定できます。


C++では未だにテキスト形式も満足に判定できない場面に遭遇します。C++は今年の改訂でも文字エンコードについては対応はされず、22年の改訂でも対応はされません。公表されている議事録を読む限り、文字に対応することについては、大多数の開発責任者は否定的です。残念なことです。


文字コードへの対応ですが、自分から作成してもいいのですが、先ほどのバイナリエディタには、文字コードへの対応辞書が付随していることが多く、また公開されているものもあるので、ググってみることをお勧めします。

通常のコメント
Akiyoshi 2019/07/10 (Wed) 14:43:50
いつも参考にさせていただきております。
今回も文字コードを判定する必要があり困っていたのですが、本記事が大変参考になりました。

通常のコメント
渡辺真 2016/09/15 (Thu) 11:03:15
第三者の作成したクラス、コードを使う方法

•NonSoft - 文字コード判定/変換DLL(VB6/VB.NET/C#.NET)
は、URLが変更になっています。
旧:http://homepage2.nifty.com/nonnon/Download/NonCodeDll/index.html
新:http://nonsoft.la.coocan.jp/Download/NonCodeDll/index.html

通常のコメント
管理人 2016/08/29 (Mon) 01:14:37
> また、環境依存なのかもしれませんが、当方の VS Community 2015 では、DetectInputCodepage の第 5 引数(detects)は ref ではなく out でした。

私が試してもそうなりました。ご報告ありがとうございました。

.NET Frameworkのバージョンによる違い
SHINTA 2016/04/17 (Sun) 12:46:24
また、環境依存なのかもしれませんが、当方の VS Community 2015 では、DetectInputCodepage の第 5 引数(detects)は ref ではなく out でした。

通常のコメント
SHINTA 2016/04/17 (Sun) 12:31:48
有用な記事をありがとうございます。
mlang.dll ですが、最近の Visual Studio(2010 以降?)では、
MultiLanguage.IMultiLanguage2 ml = new MultiLanguage.CMultiLanguageClass();
の所を
(IMultiLanguage2)new CMultiLanguage();
とする必要がありました。
https://blogs.msdn.microsoft.com/mshneer/2009/12/07/vs-2010-compiler-error-interop-type-xxx-cannot-be-embedded-use-the-applicable-interface-instead/

評価の理由
dolphin 2015/09/10 (Thu) 21:01:24
評価:良い
文字コードの判別で困っていたので大変参考になりました。

評価の理由
匿名 2014/04/3 (Thu) 22:18:17
評価:良い
大変参考になりました。

通常のコメント
管理人 2011/01/31 (Mon) 02:12:44
> Jcode.pmを参考にした方法のVB.NETサンプルコード9行目
> > ''' <param name="byts">文字コードを調べるデータ</param>
> name="bytes"ではないでしょうか?

ご連絡ありがとうございました。修正しておきます。

通常のコメント
匿名 2011/01/30 (Sun) 20:22:30
Jcode.pmを参考にした方法のVB.NETサンプルコード9行目
> ''' <param name="byts">文字コードを調べるデータ</param>
name="bytes"ではないでしょうか?

通常のコメント
Akari 2010/02/18 (Thu) 14:25:04
ASCIIコードについては以下の方法で判別できます。

Boolean ascii = true;
for (int i = 0; i < len; i++)
{
b1 = byts[i];
if (!(b1 >= 0x20 && b1 <= 0x7E))
{
ascii = false;
break;
}
}

if (ascii)
{
return System.Text.Encoding.ASCII;
}

通常のコメント
yoshi 2009/12/28 (Mon) 19:39:31
このコードには大変助かっています。ただ、GetCodeメソッドに入力する文字列(byts)が、ASCII文字のみの場合、nullが返却されるようです。とりあえずその場合は、System.Text.Encoding.ASCIIを返すように変更しましたが不備があるかもしれません。このバグ?にも対応してもらえると非常にありがたいです。

通常のコメント
雅階凡 2008/01/20 (Sun) 11:20:23
まだ、プログラミング初心者の雅階凡と申します。
文字コードの判定について考えていたのですが、この記事を読んで大変参考にさせていただきました。
質問もありますが、それについては掲示板にも投稿させていただきます。

.NET Frameworkのバージョンによる違い
TNKソフトウェア 2007/06/5 (Tue) 19:58:24
byte[]からsbyte[]への変換は

byte[] buf;
sbyte[] sbuf = (sbyte[])(object)buf;

でいけるみたいです。

評価の理由
shiyu 2007/04/9 (Mon) 01:22:17
評価:良い
Javaで文字コードの判別をするプログラムを作る必要があり、この記事を参考にさせていただきました。しかし、句読点がない文章の判別がうまくいかないようで、改良の必要がありそうです。

評価の理由
匿名 2006/07/8 (Sat) 16:30:24
評価:良い
サンプルコードだけでなく使い方や解説も親切丁寧に書かれており、大変役に立ちます。
HOW-TOものを公開する場合のお手本ですね。

通常のコメント
管理人 2005/04/28 (Thu) 04:04:00
GetCodeメソッドで、

if (len - 1 > i && byts[i] == 0x00 && byts[i - 1] <= 0x7F)

がおかしいとご指摘をメールでいただきました。

if (len - 1 > i && byts[i] == 0x00 && i > 0 && byts[i - 1] <= 0x7F)

としてください。

コメントの投稿

[説明]