カテゴリー : C#

コードページ一覧

37 IBM037 IBM EBCDIC (US – カナダ)
437 IBM437 OEM アメリカ合衆国
500 IBM500 IBM EBCDIC (インターナショナル)
708 ASMO-708 アラビア語 (ASMO 708)
720 DOS-720 アラビア語 (DOS)
737 ibm737 ギリシャ語 (DOS)
775 ibm775 バルト言語 (DOS)
850 ibm850 西ヨーロッパ言語 (DOS)
852 ibm852 中央ヨーロッパ言語 (DOS)
855 IBM855 OEM キリル
857 ibm857 トルコ語 (DOS)
858 IBM00858 OEM マルチリンガル ラテン I
860 IBM860 ポルトガル語 (DOS)
861 ibm861 アイスランド語 (DOS)
862 DOS-862 ヘブライ語 (DOS)
863 IBM863 フランス語 (カナダ) (DOS)
864 IBM864 アラビア語 (864)
865 IBM865 北欧 (DOS)
866 cp866 キリル言語 (DOS)
869 ibm869 ギリシャ語, Modern (DOS)
870 IBM870 IBM EBCDIC (多国語ラテン 2)
874 windows-874 タイ語 (Windows)
875 cp875 IBM EBCDIC (ギリシャ語 Modern)
932 shift_jis 日本語 (シフト JIS)
936 gb2312 簡体字中国語 (GB2312)
949 ks_c_5601-1987 韓国語
950 big5 繁体字中国語 (Big5)
1026 IBM1026 IBM EBCDIC (トルコ語ラテン 5)
1047 IBM01047 IBM ラテン-1
1140 IBM01140 IBM EBCDIC (US – カナダ – ヨーロッパ)
1141 IBM01141 IBM EBCDIC (ドイツ – ヨーロッパ)
1142 IBM01142 IBM EBCDIC (デンマーク – ノルウェー – ヨーロッパ)
1143 IBM01143 IBM EBCDIC (フィンランド – スウェーデン – ヨーロッパ)
1144 IBM01144 IBM EBCDIC (イタリア – ヨーロッパ)
1145 IBM01145 IBM EBCDIC (スペイン – ヨーロッパ)
1146 IBM01146 IBM EBCDIC (UK – ヨーロッパ)
1147 IBM01147 IBM EBCDIC (フランス – ヨーロッパ)
1148 IBM01148 IBM EBCDIC (インターナショナル – ヨーロッパ)
1149 IBM01149 IBM EBCDIC (アイスランド語 – ヨーロッパ)
1200 utf-16 Unicode
1201 unicodeFFFE Unicode (Big-Endian)
1250 windows-1250 中央ヨーロッパ言語 (Windows)
1251 windows-1251 キリル言語 (Windows)
1252 Windows-1252 西ヨーロッパ言語 (Windows)
1253 windows-1253 ギリシャ語 (Windows)
1254 windows-1254 トルコ語 (Windows)
1255 windows-1255 ヘブライ語 (Windows)
1256 windows-1256 アラビア語 (Windows)
1257 windows-1257 バルト言語 (Windows)
1258 windows-1258 ベトナム語 (Windows)
1361 Johab 韓国語 (Johab)
10000 macintosh 西ヨーロッパ言語 (Mac)
10001 x-mac-japanese 日本語 (Mac)
10002 x-mac-chinesetrad 繁体字中国語 (Mac)
10003 x-mac-korean 韓国語 (Mac)
10004 x-mac-arabic アラビア語 (Mac)
10005 x-mac-hebrew ヘブライ語 (Mac)
10006 x-mac-greek ギリシャ語 (Mac)
10007 x-mac-cyrillic キリル言語 (Mac)
10008 x-mac-chinesesimp 簡体字中国語 (Mac)
10010 x-mac-romanian ルーマニア語 (Mac)
10017 x-mac-ukrainian ウクライナ語 (Mac)
10021 x-mac-thai タイ語 (Mac)
10029 x-mac-ce 中央ヨーロッパ言語 (Mac)
10079 x-mac-icelandic アイスランド語 (Mac)
10081 x-mac-turkish トルコ語 (Mac)
10082 x-mac-croatian クロアチア語 (Mac)
12000 utf-32 Unicode (UTF-32)
12001 utf-32BE Unicode (UTF-32 ビッグ エンディアン)
20000 x-Chinese-CNS 繁体字中国語 (CNS)
20001 x-cp20001 TCA 台湾
20002 x-Chinese-Eten 繁体字中国語 (Eten)
20003 x-cp20003 IBM5550 台湾
20004 x-cp20004 TeleText 台湾
20005 x-cp20005 Wang 台湾
20105 x-IA5 西ヨーロッパ言語 (IA5)
20106 x-IA5-German ドイツ語 (IA5)
20107 x-IA5-Swedish スウェーデン語 (IA5)
20108 x-IA5-Norwegian ノルウェー語 (IA5)
20127 us-ascii US-ASCII
20261 x-cp20261 T.61
20269 x-cp20269 ISO-6937
20273 IBM273 IBM EBCDIC (ドイツ)
20277 IBM277 IBM EBCDIC (デンマーク – ノルウェー)
20278 IBM278 IBM EBCDIC (フィンランド – スウェーデン)
20280 IBM280 IBM EBCDIC (イタリア)
20284 IBM284 IBM EBCDIC (スペイン)
20285 IBM285 IBM EBCDIC (UK)
20290 IBM290 IBM EBCDIC (日本語カタカナ)
20297 IBM297 IBM EBCDIC (フランス)
20420 IBM420 IBM EBCDIC (アラビア語)
20423 IBM423 IBM EBCDIC (ギリシャ語)
20424 IBM424 IBM EBCDIC (ヘブライ語)
20833 x-EBCDIC-KoreanExtended IBM EBCDIC (韓国語 Extended)
20838 IBM-Thai IBM EBCDIC (タイ語)
20866 koi8-r キリル言語 (KOI8-R)
20871 IBM871 IBM EBCDIC (アイスランド語)
20880 IBM880 IBM EBCDIC (キリル言語 – ロシア語)
20905 IBM905 IBM EBCDIC (トルコ語)
20924 IBM00924 IBM ラテン-1
20932 EUC-JP 日本語 (JIS 0208-1990 および 0212-1990)
20936 x-cp20936 簡体字中国語 (GB2312-80)
20949 x-cp20949 韓国語 Wansung
21025 cp1025 IBM EBCDIC (キリル言語 セルビア – ブルガリア)
21866 koi8-u キリル言語 (KOI8-U)
28591 iso-8859-1 西ヨーロッパ言語 (ISO)
28592 iso-8859-2 中央ヨーロッパ言語 (ISO)
28593 iso-8859-3 ラテン 3 (ISO)
28594 iso-8859-4 バルト言語 (ISO)
28595 iso-8859-5 キリル言語 (ISO)
28596 iso-8859-6 アラビア語 (ISO)
28597 iso-8859-7 ギリシャ語 (ISO)
28598 iso-8859-8 ヘブライ語 (ISO-Visual)
28599 iso-8859-9 トルコ語 (ISO)
28603 iso-8859-13 エストニア語 (ISO)
28605 iso-8859-15 ラテン 9 (ISO)
29001 x-Europa ヨーロッパ
38598 iso-8859-8-i ヘブライ語 (ISO-Logical)
50220 iso-2022-jp 日本語 (JIS)
50221 csISO2022JP 日本語 (JIS 1 バイト カタカナ可)
50222 iso-2022-jp 日本語 (JIS 1 バイト カタカナ可 – SO/SI)
50225 iso-2022-kr 韓国語 (ISO)
50227 x-cp50227 簡体字中国語 (ISO-2022)
51932 euc-jp 日本語 (EUC)
51936 EUC-CN 簡体字中国語 (EUC)
51949 euc-kr 韓国語 (EUC)
52936 hz-gb-2312 簡体字中国語 (HZ)
54936 GB18030 簡体字中国語 (GB18030)
57002 x-iscii-de ISCII デバナガリ文字
57003 x-iscii-be ISCII ベンガル語
57004 x-iscii-ta ISCII タミール語
57005 x-iscii-te ISCII テルグ語
57006 x-iscii-as ISCII アッサム語
57007 x-iscii-or ISCII オリヤー語
57008 x-iscii-ka ISCII カナラ語
57009 x-iscii-ma ISCII マラヤラム語
57010 x-iscii-gu ISCII グジャラート語
57011 x-iscii-pa ISCII パンジャブ語
65000 utf-7 Unicode (UTF-7)
65001 utf-8 Unicode (UTF-8)

C#では以下のコードで取得できます。
(ファイルに書き込んでいます。)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
using System;
using System.IO;
using System.Text;

namespace Encodings {
    class Program {
        static void Main(string[] args) {
            using (StreamWriter writer = File.CreateText("codepage.txt")) {
                foreach (var i in Encoding.GetEncodings()) {
                    writer.WriteLine("{0,5} {1,-24} {2}", i.CodePage, i.Name, i.DisplayName);
                }
            }
        }
    }
}

WinSymLink ver1.2.0.0

ファイルのシンボリックリンクを作れるようになりました。

あと、ファイル名を引数にすることでコンソールからも実行できます。(ウィンドウなし)
winsymlink.exe "ファイル名orフォルダ名"
シンボリックリンクが作成可能ならシンボリックリンクを、
そうでなければジャンクションを作ります。
ジャンクションも作成不可能な場合は何も行いません。

実行ファイル
ソース

WinSymLink ver1.1.0.0

とりあえずWindows2000, XP に対応してみました。

まず、OSの制限によりXP以前ではシンボリックリンクは扱えません。
なので、ジャンクションのみの対応となります。
次に、コマンドラインツール junction.exe が必要になります。
(WinSymLink.exeと同じフォルダに置いてください)

使い方

  • 対象フォルダを選択する。(D&DでもOK)
  • 「ジャンクション作成」をクリックして実行。
  • 成功すれば「_junction」を付加した名前のジャンクションが出来ています。

WinSymLink_v1.1.0.0.zip

WinSymLink ver1.0.0.0

簡単にシンボリックリンクを作るソフトが欲しかったので作ってみました。

今のところはフォルダのリンクしか作れません(個人的にはこれで十分なため)。
OSの機能を使用しているためWindows Vista以降でしか使えません。
ジャンクション機能を作って、なんとかXPにも対応させたいのですが。

もう少しまともなものになったらソースも公開します。
WinSymLink_v1.0.0.0.zip

BigInteger

.NET 4.0でようやく多倍長整数が導入されるようです。
型名はBigIntegerで、名前空間はSystem.Numerics、DLLはSystem.Numerics.dllです。
msdn

VS2010+.NET4.0で動作確認済み。
VS2008ではやはり無理っぽいです。

2.0の頃に次期バージョンで導入予定と言われていたので、だいぶ遅れていますね。
でもこれで劣化版BigIntegerを自分で作る必要がなくなったのでなによりです。
C++では既に作ってしまっているわけですが。

Siki.Configure #1

ソース自体は前回と殆ど変わってないんですが、簡単な説明を。


名前空間 Siki.Configure


クラス GlobalConfigure

XMLファイルとXML DOMの相互変換を行うクラス。
XML DOMのルートでもある。


クラス ConfigureNode

XMLの要素を表すツリーノード。
このノードは1つの値と複数の子ノードを持つことができる。


クラス ConfigureEventArgs

イベント引数。
今のところ使用しない。


使用例 – フォームの位置とサイズを記録し、次回起動時に復元する

使用する名前空間はSiki.Configure。

1
2
3
4
5
6
7
using System;
using System.Drawing;
using System.Windows.Forms;
using Siki.Configure;

namespace ConfigureSample {
    public partial class Form1 : Form {

GlobalConfigureインスタンスにアクセスするためのプロパティ。

8
9
10
11
        private GlobalConfigure Configure {
            get;
            set;
        }

コンストラクタ。
GlobalConfigureインスタンスの作成。
ここでは設定ファイルにconfigure.xmlを指定。
(別のコンストラクタを使えばディレクトリやXMLのルート要素なども指定できます。)
フォームのLoadとFormClosingイベントにハンドラを設定。

12
13
14
15
16
17
18
        public Form1() {
            InitializeComponent();
            Configure = new GlobalConfigure("configure.xml");
            Load += new EventHandler(Form1_Load);
            FormClosing += new FormClosingEventHandler(Form1_FormClosing);
            //StartPosition = FormStartPosition.Manual;
        }

Loadイベントハンドラで位置とサイズの復元を行う。
FormClosingイベントハンドラで位置とサイズを記録し、設定ファイルに保存する。

19
20
21
22
23
24
25
26
27
28
        private void Form1_Load(object sender, EventArgs e) {
            RestoreLocation();
            RestoreSize();
        }

        private void Form1_FormClosing(object sender, FormClosingEventArgs e) {
            SaveLocation();
            SaveSize();
            Configure.Save();
        }

位置の復元メソッド。
Configureを使用し、連想配列のようにアクセスできる。
返される値はすべてstringなので、他の型への変換は自分で行う必要がある。
指定された要素が存在し、32ビット整数に変換可能ならばtry内で例外は発生しないはず。
以下のコードで
Configure[“window”]
Configure[“window”][“location”]
Configure[“window”][“location”][“x”]
は、いずれもConfigureNodeのインスタンスであり、stringへの変換は暗黙に行われる。

29
30
31
32
33
34
35
36
37
38
39
        public void RestoreLocation() {
            try {
                string strx = Configure["window"]["location"]["x"],
                       stry = Configure["window"]["location"]["y"];
                int x = Convert.ToInt32(strx, 10),
                    y = Convert.ToInt32(stry, 10);
                Location = new Point(x, y);
            } catch {

            }
        }

位置の記録メソッド。
要素に書き込むにはConfigureNode.Valueに代入する必要がある。

40
41
42
43
        public void SaveLocation() {
            Configure["window"]["location"]["x"].Value = Location.X.ToString();
            Configure["window"]["location"]["y"].Value = Location.Y.ToString();
        }

サイズの復元と記録メソッド。
ほぼ同上。

44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
        public void RestoreSize() {
            try {
                string strw = Configure["window"]["size"]["width"],
                       strh = Configure["window"]["size"]["height"];
                int width = Convert.ToInt32(strw, 10),
                    height = Convert.ToInt32(strh, 10);

                Size = new Size(width, height);
            } catch {

            }
        }

        public void SaveSize() {
            Configure["window"]["size"]["width"].Value = Size.Width.ToString();
            Configure["window"]["size"]["height"].Value = Size.Height.ToString();
        }
    }
}

備考

設定ファイルのディレクトリを明示的に指定しない場合、「~~\ユーザー名\AppData\Roaming\組織名\アプリケーション名\バージョン\」をデフォルトのディレクトリとして扱います。(XP以前では若干違うかも)

TOP

INFORMATION

未来の自分のためのメモ
管理者:rei