問題タブ [codepages]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c - シェルスクリプトから現在のコードページを決定する最も確実な方法は何ですか?
Unix シェル スクリプトから、実行時に環境の現在のコードページを特定したいと考えています。これを行う最も信頼できる方法は何ですか?
環境変数 $LC_ALL の解析を検討していますが、常に有用な値に設定されているとは限らず、その形式が異なるようです (< locale >、または < locale >.< code page >、または < locale >のいずれか)。 .<コード ページ>@<修飾子> など...)。
より良い方法はありますか?私は基本的に、C から nl_langinfo(CODESET) を呼び出した場合に得られるものと同等のシェルを求めています。
c - isdigitはCでロケールに合法的に依存できますか
setlocaleをカバーするセクションで、ANSI C標準は脚注で、現在のロケールの影響を受けない動作を持つctype.h関数はisdigitとisxdigitのみであると述べています。
たとえば、コードページ1250を使用するロケールでは、isdigitは0x30( '0')〜0x39( '9')の範囲の文字に対してのみゼロ以外を返すため、isdigitのMicrosoft実装はロケールに依存しますが、コードページを使用するロケールでは1252 isdigitは、上付き数字0xB2('²')、0xB3('³')、および0xB9('¹')に対してもゼロ以外を返します。
isdigitロケールに依存させることにより、MicrosoftはC標準に違反していますか?
この質問では、C99ではなく、Microsoftが準拠していると主張しているC90に主に関心があります。
追加の背景:
Microsoft独自のsetlocaleのドキュメントには、isdigitはロケールのLC_CTYPE部分の影響を受けないと誤って記載されています。
ctype.h関数をカバーするC標準のセクションには、あいまいだと思う言葉が含まれています。
これらの関数の動作は、現在のロケールの影響を受けます。「C」ロケールにない場合にのみロケール固有の側面を持つ関数を以下に示します。
ロケール固有の側面についての注記がないisdigitなどの関数について何を言おうとしているのかが明確でないため、これはあいまいだと思います。このような関数はロケールに依存していると想定する必要があると言っているかもしれません。その場合、Microsoftによるisdigitの実装は問題ありません。(先に述べた脚注がこの解釈と矛盾しているように見えることを除いて。)
windows - 「ANSI」コード ページとして UTF-8 が許可されないのはなぜですか?
Windows_setmbcp
関数では、有効なコード ページを使用できます...
(サポートされていない UTF-7 と UTF-8 を除く)
OK、UTF-7 をサポートしないのは理にかなっています。文字の表現は一意ではないため、複雑さとセキュリティ リスクが生じます。
しかし、なぜ UTF-8 ではないのでしょうか?
私が理解しているように、Windows API 関数の「ANSI」バージョンは引数を UTF-16 に変換し、同等の「W」関数を呼び出し、出力内のすべての文字列を「ANSI」に変換します。これは私が手動で行ってきたことです。では、なぜ Windows がそれを実行できないのでしょうか。
delphi - Windows XPのデフォルトのコードページをプログラムで変更しますか?(Delphiから)
誰かがプログラムでデフォルトのWindowsXPコードページを変更する方法をアドバイスできますか(私はDelphiからこれを行っています)?(これは、[コントロールパネル]->[地域の設定]->[Unicode以外のアプリケーションの言語]に移動するのと同じです)。
この場合、中国語(PRC)に切り替えたいので、次のレジストリ文字列に書き込みます:HKLM \ SYSTEM \ CurrentControlSet \ Control \ Nls \ CodePage \ ACP = 936 MACCP = 10008 OEMCP = 936
(これは、コントロールパネルの非Unicodeコードページドロップダウンを変更することとまったく同じです)。変更する必要のある別の設定が必要です。レジストリに自分で書き込むのではなく、Win API呼び出し(使用可能な場合)を使用したいと思います。
また、HKLM \ SYSTEM \ CurrentControlSet \ Control \ Nls \ Language \ Default = 0804(中国語PRC)を無効に設定してみました。
「ロケール」自体は変更したくありません。これにより、時刻/日付の設定、区切り文字なども変更されます。
これは、漢字をレンダリングする必要があるANSIアプリケーションを使用しており、システムが文字を表示するように自動的に切り替えるツールを作成しているためです(UIの他の側面はそのままにします)。
ありがとう!
ダンカン
delphi - DELPHI:EEncodingError-WindowsXPの無効なコードページが埋め込まれています
こんにちは私はWindowsXPPro、Windows Visa、Windows7でうまく機能するアプリケーションを持っています
しかし、Windows XP Embeddedで実行すると、機能せず、次のエラーが発生します。
EEncodingError-無効なコードページ
アプリがDelphi2006で作成された場合、WindowsXPが埋め込まれている場合に機能します
**アプリがDelphi2010で作成されている場合、**WindowsXPが埋め込まれている場合は機能しません****
c# - Windows サービスと既定のコード ページ/カルチャ設定?
ディレクトリからファイルを読み取り、ファイルの内容を読み取り、内容を処理するサービスを作成しています。
スウェーデン語の文字が読み取られるときにサービスによって「ガベージ文字」に変換されるため、ファイルから読み取られるスウェーデン語の文字に問題があります。
サービス コントロール マネージャーで使用されている既定のコード ページ/カルチャ設定を知っている人はいますか?または、Windows サービス プログラミングのコンテキストでスウェーデン語の文字を処理するための「ベスト プラクティス」に関する記事を知っている人はいますか?
どんな助けでも大歓迎です。
asp.net - ASP.NET の国際 PC から投稿された「英語」文字をどのように変換しますか? (例:2205)
海外からの訪問者から時折ヒットする WebForm 検索ページがあります。テキストを入力すると、プレーンな ASCII az、0-9 のように見えますが、太字で印刷されており、私の「このテキストは」ロジックでは入力を処理できません。ASP.NET で、A ~ Z、0 ~ 9 に相当する Unicode 文字をプレーンな古いテキストに変換する簡単な方法はありますか?
c# - Db2コードページ1252からODBCADO.NETを使用してデータを読み取る-ユーロ(€)記号が正しく取得されない
VS 2005 C#では、ユーロ(€)記号をDb2テーブルに挿入している間、値を正しく格納しています。DISABLEUNICODE = 1パラメータは、これを正しく保存するのに役立ちました。
しかし、テーブルから読み取ろうとすると、次のようにジャンク文字が表示されます。
「SpecGS1」
同じコードがVB6.0ADOで機能しています
手伝っていただけませんか。
コード:
c++ - コンソールのフォントを変更するにはどうすればよいですか?
Windows XP コンソールでの出力 Unicode に問題があります。(Microsoft Windows XP [バージョン 5.1.2600]) 最初のコードは ( http://www.siao2.com/2008/03/18/8306597.aspxより)
私のコードページは 65001(CP_UTF8) です。Ⴂ を除いて、どの文字も見栄えがします。でも Ⴂ は四角に見えます。コンソールのデフォルト フォント「Lucida Console」には、その文字のフォントがありません。そのため、Ⴂ を正しくレンダリングできる他のフォントをダウンロードしましたが、(Visual Studio 2005 プロジェクトの) コンソール フォントを変更できません。
HKEY_CURRENT_USER\Console\%SystemRoot%_system32_cmd.exe\FontNameを変更したのですが、Promptのプロパティ→フォントを確認すると「Lucida Console」になっています。APIでコンソールのフォントを変更する方法はありますか?
次のコードは私が試したものです。しかし、うまくいきません。ヘルプ。
PS : ところで、「code タグ」に「include < fcntl.h >」を入れると、<> で囲まれた部分 (fcntl.h) が消えてしまいました。システムインクルードをどのように配置できますか?
c# - 入力文字列のコードページを認識する
入力文字列のコードページを認識する方法。たとえば、キリル文字で何かを入力すると、windows-1251が返され、中国語で文字列を入力すると、他のコードページなどが返されます。