以前、教えて!goo の OS の所で質問し無回答だったのですが...
ココならきっと専門家がいらっしゃるのではと思い質問致します。

かなり難題かも知れませんが...
韓国版や台湾版の MS-DOS 上でのコードページは、何番なのでしょうか?
ピュア DOS 環境と Windows DOS 窓上でそれぞれ知りたいのですが。
(おそらく ACP(ANSI codepage) ではなく OEMCP の方です)

と、言いますのも...
古い話しですが、英語版 MS-DOS6.22 に付属の country.txt によると、
code pages
932 (Japanese)
934 (Korean)
936 (PRC Chinese)
938 (Taiwanese)

となっており、それぞれ MS-DOS 上でのコードページは、
日本版 MS-DOS の codepage は 932
韓国版 MS-DOS の codepage は 934
中国版 MS-DOS の codepage は 936
台湾版 MS-DOS の codepage は 938

なのだろうなぁと、想像がつきます。
しかし、それに対応する unicode 表を以下のURLで検索すると、
ftp://ftp.unicode.org/Public/MAPPINGS/VENDORS/MI …

日本版と中国版の CP932.TXT、CP936.TXT は見つかるのですが、
おそらく韓国版と台湾版となる CP934.TXT、CP938.TXT は見つかりません。

そして、インターネットで色々と調べると
CP949 が Windows Unified Hangul (Extended Wansung) Korean
CP950 が Windows ASCII plus Big5 Chinese, used in Hong Kong and Taiwan

となっています。
ひょっとして昔の DOS 環境と Windows DOS 窓上では違うのでしょうか?
どなたか、ハングル DOS/V や Windows98、台湾版等をお持ちの方、
宜しくお願い致します。

このQ&Aに関連する最新のQ&A

A 回答 (2件)

自分でも少し気になったので、ちょっと調べてみました。


下記URL(ハングルを表示できる環境が必要ですが)によると、

ハングルMS-DOS 5 では、コードページ 934 を、
Windows 3.1 と ハングルMS-DOS 6 では コードページ 949 を使用する。

となっていました。

台湾版のほうについては詳しくは分かりません。

参考URL:http://www.pnk.co.kr/tech/network/Novell/1.html
    • good
    • 0
この回答へのお礼

ご親切なご回答ありがとうございます!!

なるほど、ハングル版 MS-DOS 5 以前ではコードページ 934 だったんですね。
この辺りの情報は、おそらく韓国では当たり前の事かも知れませんが、隣国の日本では全く知られていないですよね。
Windows 3.1 ではコードページ 949 を使用するという事は、934 と 949 は互換性があるのでしょうか?
そうでないと、ファイル名とかテキスト文書とか大変な事になりそうですね。

それにしても、凄いですね!
以前、私も韓国の検索サイトで調べてみましたが、さすがにハングル文字はチンプンカンプンで断念しました。
韓国語って、英語や中国語とは違って想像もつかない感じで、私にとっては画面を消して操作するのと同じくらいです...

お礼日時:2001/12/29 00:00

ハングル版のMS-DOSを使った事がある者です。


と言っても、ただそれだけなので果たしてお力になれるかどうか・・・

参考URLの「ksc5601.txt」「big5.txt」は参考になりますでしょうか。
もし外してたら後免なさい。

参考URL:http://tcl.apache.org/sources/tcl/tools/encoding/
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
その後も、まだまだ調べている最中なのですが、
どうやら Win95 以降の DOS(MS-DOS 7.0以降)ではピュア DOS 環境でも、
韓国版の codepage は 949
台湾版の codepage は 950

で間違いないようです。
しかし、それ以前の DOS(MS-DOS 6.2以前)の codepage については、未だ不明のままです。
ichigota さんの参考 URL では Apache も 949 と 950 を使用していますね。
昔の英語版 MS-DOS 6.22 の情報が間違っているのでしょうか...
ますますそんな気がしてきました。

お礼日時:2001/12/27 22:14

このQ&Aに関連する人気のQ&A

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

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QC++ の typedef の 使い方の質問

C++のtypedefの使い方の質問ですが、typedefは、別名の定義として、知られていますが。
以下のソースの意味がよく読み取れないです。windows プログラミングとC++
が分かるかたがいれば、以下のソースの意味を教えていただきたいです。

よろしくお願いします。
typedef BOOL (WINAPI *AddAccessAllowedAceFn)(
PACL pAcl,
DWORD dwAceRevision,
DWORD AceFlags,
DWORD AccessMask,
PSID pSid
);

Aベストアンサー

関数ポインタの別名定義です。
「関数ポインタ typedef」をキーワードにWeb検索してみてください。
丁寧に解説されているサイトが見つかるでしょう。

QUnicodeで保存されたtxtファイルを開いて編集後Unicodeで保存する方法について

VC++.NETを使ってプログラミングをしております。

タイトルの通り、Unicodeで保存されているtxtファイルを
開いて編集後、再びUnicodeのtxtで保存したいのですが、
具体的な方法がわかりません。

普通にCFileクラスで開いて、CStringクラスで編集後、
保存して大丈夫でしょうか?

サンプルプログラムが紹介されているWEBページや、方法を
ご存知の方教えてください。

Aベストアンサー

MFCのCStringはUnicodeに対応しているようです。また、CFileでUnicodeのファイルを読み書きしても問題はありませんでした。
http://www.microsoft.com/japan/developer/library/vccore/_core_strings.3a_.unicode_and_multibyte_character_set_.28.mbcs.29_.support.htm

CFile、CStringなど、MFCを使って処理されていますが、VC++.NETを使っているため、.NET Frameworkを使ってみるのはどうでしょうか?.NETはC#から使うのが一番ですが、C++からでも使用できます。

C++.NETでUnicodeファイルのRead/編集/Writeサンプル
------------------------------------------------------------------------------
#include "stdafx.h"
#using <mscorlib.dll>

using namespace System;
using namespace System::IO;
using namespace System::Text;

int _tmain()
{
  // Unicodeでsample.txtを読み込み
  StreamReader* sr = new StreamReader("sample.txt", Encoding::Unicode);
  String* buffer = sr->ReadToEnd();
  sr->Close();

  // "&"を"&amp;"に変換
  String* work = buffer->Replace("&", "&amp;");

  // Unicodeでoutput.txtに書き込み
  StreamWriter* sw = new StreamWriter("output.txt", Encoding::Unicode);
  sw->Write(work);
  sw->Close();

  return 0;
}

MFCのCStringはUnicodeに対応しているようです。また、CFileでUnicodeのファイルを読み書きしても問題はありませんでした。
http://www.microsoft.com/japan/developer/library/vccore/_core_strings.3a_.unicode_and_multibyte_character_set_.28.mbcs.29_.support.htm

CFile、CStringなど、MFCを使って処理されていますが、VC++.NETを使っているため、.NET Frameworkを使ってみるのはどうでしょうか?.NETはC#から使うのが一番ですが、C++からでも使用できます。

C++.NETでUnicodeファイルのRead/編集/Wr...続きを読む

QC++.NET の String型の使い方

初めて質問いたします。
C++ .NET 2005 Express Beta版を入手し、Windows Formsのプログラミングを勉強してます。

TextBoxのTextに値を変数で指定したいのですがどうすれば良いのかわかりません。

  textBox1->Text = "Test";
とダイレクトに値を指定すればできるのですが、

  #include <string>
  using namespace std;
   (省略)
  string str = "Test";
  textBox1->Text = str;
は、エラーになってしまいます。

C++標準のstringクラスではなく、.NETはStringクラスがあるようですが、これの使い方がMSDN等で調べているのですが分かりません。
分かりやすいURLなどありましたら教えていただけませんか。

Aベストアンサー

textBox1->Text = new String(str.c_str());
でいけるんじゃないかなあ。
試してないのでなんですが、
C++のstringクラスからは、c_str()で、いわゆるNULL終端文字列へのポインタが得られて
.NETのStringクラスは、NULL終端文字列でのコンストラクタがありますから。

Qfoo1.txt、foo2.txt、foo3.txt…とファイル名をつけたいとき

プログラムの一部でファイルを作成しておりまして、
foo1.txt、foo2.txt、foo3.txt…のように
foo+変数.txtとなっており、変数を変える(増やす)ことで複数のファイルを作っていきたいのですが、

このように作成したいファイル名の途中に変数を含んでいる場合、どのようにすればよいのかをご教授願います。

現在、ファイルを作成する関数(関数の中身はおそらく関係してこないと思うので割愛させていただきます)を作成し、
make("foo.txt")のように記述しておりますが詰まってしましました。
どうぞ宜しくお願いします。

Aベストアンサー

つまり
char str[16];
int count;
for(count = 0; count < 10; count++)
{
sprintf(str,"foo%d.txt",count + 1);
}
とすると
strにファイル名が入っている。

Qc++ stringの使い方

お世話になります。
最近c++始めました。
stringの使い方がよくわかりません。
以下のstringの使い方が問題ないか確認頂けますか。
スマホで書くため、文法が合ってないと思いますが、stringの使い方だけ確認させてください。
引数にstringで囲って渡すのは実装として普通行いますか。
やってはいけないですか。
是非ご教示ください。

#define STR1 "mojiretu"
main()
if(check(string(STR1)))



bool check(string str)

Aベストアンサー

間違っちゃいないけど、直に const string でかまわんのでは?

#include <iostream>
#include <string>

const std::string STR1 = "mojiretu";

bool even_length(const std::string& str) {
return str.length() % 2 == 0;
}

int main() {
if ( even_length(STR1) ) {
std::cout << STR1 << " : even\n";
} else {
std::cout << STR1 << " : odd\n";
}
}

QAPI関数フック Unicode版とANSI版?

API関数フック なぜUnicode版とANSI版の区別があるのか?

関数名StartDocでAPIフックを仕掛けましたが引っ掛かりません
MSDNを参照したら Unicode版とANSI版を実装 とあります
関数Messageboxにも同様な記載があり、参考にしておりますサンプルコードではMessageboxWとMessageboxAの関数名でフックを仕掛けております
これにヒントを得てStartDocAとStartDocWの関数名でフックしましたらOKでした

そこで質問です
アプリでStartDoc関数を使用する時はStartDocA、StartDocWを区別せず全てStartDocだけで呼出しており正常に機能しております

なぜStartDoc関数をフックする時のみStartDocA、StartDocWの両者を区別する必要があるのですか?
関数名StartDocでフックすればアプリを組む時と同じようにUnicode、ANSIの両者に対応してくれないのでしょうか?

Aベストアンサー

> アプリでStartDoc関数を使用する時はStartDocA、StartDocWを区別せず全てStartDocだけで呼出しており正常に機能しております

Unicode版とANSI版があるAPIの場合,ヘッダファイルで
#if defined(UNICODE)
#define MessageBox MessageBoxW
#else
#define MessageBox MessageBoxA
#endif
のようにマクロが定義されています。
なので,実際に呼ばれているのはStartDocAまたはStartDocWになります。


> なぜStartDoc関数をフックする時のみStartDocA、StartDocWの両者を区別する必要があるのですか?

通常のAPIの呼び出しでは区別しないで良いようにヘッダファイルが用意されているからです。
フックだけではなく,GetProcAddressでも区別しないといけませんし,
VB6までやVBAでも区別されています。
# .NET FrameworkのDllImportAttributeはAを付けたりWを付けたりする機能がある。

> アプリでStartDoc関数を使用する時はStartDocA、StartDocWを区別せず全てStartDocだけで呼出しており正常に機能しております

Unicode版とANSI版があるAPIの場合,ヘッダファイルで
#if defined(UNICODE)
#define MessageBox MessageBoxW
#else
#define MessageBox MessageBoxA
#endif
のようにマクロが定義されています。
なので,実際に呼ばれているのはStartDocAまたはStartDocWになります。


> なぜStartDoc関数をフックする時のみStartDocA、StartDocWの両者を区別する必要があるのですか?

通常のAPIの...続きを読む

QVisial C++おけるπの使い方

自宅でCプログラミングの練習をするためVisial C++ 2008を使って
プログラムをしています。y<sin(πx)となった時の
割合などを計算するプログラムで                「M_PIが定義されていない識別子です」
とでてきます。所持している本を参考にしてもM_PI=πとして用いる
と書いてあり、math.hもインクルードしてるので原因が分からなくて
困ってます。Visial c++ではπの使い方には何か別の使い方がある
のでしょうか?よろしくお願いします。
*↓が実際に作ったプログラムです。
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <math.h>

int main(void){
int i,n,count=0;
double x,y,r,error;

srand((unsigned)time(NULL)); /*乱数の初期化*/

printf("How many trials?");
scanf("&d",&n);

for(i=0;i<n;i++){
x=rand()/(RAND_MAX+1.0);
y=rand()/(RAND_MAX+1.0);

if(y<sin(M_PI*x)){
count++;
}
}

r=(double)count/n; /*キャスト演算子を使用*/
error=2/M_PI-r;

printf("Result is %f (Error: %f)\n",r,error);

return 0;
}

自宅でCプログラミングの練習をするためVisial C++ 2008を使って
プログラムをしています。y<sin(πx)となった時の
割合などを計算するプログラムで                「M_PIが定義されていない識別子です」
とでてきます。所持している本を参考にしてもM_PI=πとして用いる
と書いてあり、math.hもインクルードしてるので原因が分からなくて
困ってます。Visial c++ではπの使い方には何か別の使い方がある
のでしょうか?よろしくお願いします。
*↓が実際に作ったプログラムです。
#include ...続きを読む

Aベストアンサー

★アドバイス
・math.hをインクルードする前に『_USE_MATH_DEFINES』定数を define します。

#define _USE_MATH_DEFINES
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <math.h>

int main( void )
{
 :
 return 0;
}
必ず include する前に定義して下さい。

QMS-DOSプログラムしか作れない?

C言語の勉強をしているんですが、MSDOSで動くプログラムしか作れないんですか?知識が少ないだけ?
無償のボーランドをつかってます。

Aベストアンサー

私は無償ボーランドC++5.5でWindowsプログラムを作っていますよ
APIで作れば全く問題なく作れます
「猫でもわかるWindowsプログラミング」
を参考に作ってください

Windowsプログラミング用にコンパイルするにはオプションをつけなければいけませんが以下のファイル"win"(属性なし)をコンパイル作業をしているディレクトリに作ればウィンドウズ用プログラムソース
winapp.cpp

bcc32 +win winapp
でコンパイルできます

win(ファイル名)

-I"c:\Borland\Bcc55\include"
-L"c:\Borland\Bcc55\lib"
-W
-WM
-VM

ただしコンパイラがc:\Borland\にインストールされている場合です

参考URL:http://www.kumei.ne.jp/c_lang/

QcygwinでのC++の使い方

cygwinでC言語で書いたプログラムを実行したいのですがcygwinを起動すると
私の名前@なにやらアルファベット
が表示され次の行に

と表示されるんですがこの後にどんなことを書けば
#include<・・・>
としてC++のプログラムを書いていくことができるんですか?そもそもcygwinの使い方が根本的に違うんですかねえ?それともメモ帳かなんかにプログラムを書き保存しそれをcygwinで実行するんですかねえ?とりあえずプログラムを実行できるようにしてください。おねがいします。

Aベストアンサー

> それともメモ帳かなんかにプログラムを書き保存しそれをcygwinで実行するんですかねえ?

おおむねその通りです。

メモ帳でも何でもよいので、エディタでソースファイルを作成してください。作成したソースファイルは、とりあえずホームディレクトリに格納するとよいでしょう(C:\cygwinにCygwinをインストールしたのであれば、C:\cygwin\home\アカウント名がホームディレクトリになります)。

作成したソースファイルがfoo.cppだった場合、

g++ foo.cpp

とすれば、a.exeという実行ファイルが同じディレクトリにできるはずです。そこで、

./a

と入力すれば、a.exeを実行することができます。

QMS-DOSプロンプトの画面で:を出す方法

Meのリカバリに伴う作業でMS-DOSプロンプトの画面でA:>のあとに
DIR C:
と入力したい(ディレクトリの内容一覧)のですが、:
の出し方がわかりません。
どこのキーで出てくるのでしょうか。

Aベストアンサー

こんばんは
起動時にキーボードの種類は問われませんでしたか?
半角/全角を選択し、日本語キーボードを選択している場合は、通常の入力方法と同じはずです。
もし、英語キーボードを選択している場合は、確か”shift”+”;”だったと思います。
ウル覚えですみません。


人気Q&Aランキング