問題タブ [unicode]
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.
ruby - Ruby:潜在的にユニコードの文字列をバイトに分割する方法
ユーザー入力を受け取り、画面上にレンダリングするゲームを書いています。私がこれに使用しているエンジンは完全に Unicode に対応しているため、可能であればそれを維持したいと考えています。問題は、レンダリング ループが次のようになることです。
私は i18n についてよく知りませんが、上記のコードが機能するのは私と私の言語を話す人々だけであることは十分に知っています。私は次のようなものを好むだろう:
これはコアディストリビューションに存在しますか? 私はインストールに追加の要件を追加することには多少抵抗がありますが、それが唯一の方法である場合は、私は生きます.
さらに面白いことに、文字列が実際に Unicode 文字列であるかどうかを知る方法はありません。
編集:私が使用しているライブラリは実際に文字列全体をレンダリングできますが、ユーザーがその場で表示されるものを編集できるようにしています.「バックスペース」を押すと、基本的に、最後を切り落とすバイト数を知る必要があります.
c# - C#でUnicode文字列を処理するためのベストプラクティスは何ですか?
誰かがC#でUnicode文字列を処理するときに知っておくべきいくつかの重要な側面を教えてもらえますか?
c++ - TinyXML の UTF-8 サポートはどのように機能しますか?
TinyXMLを使用してXML ファイルを解析/構築しています。現在、ドキュメントによると、このライブラリは UTF-8 を介してマルチバイト文字セットをサポートしています。これまでのところとても良いと思います。ただし、ライブラリが提供する唯一の API (要素名、属性名、および値の取得/設定など、文字列が使用されるすべてのもの) はstd::string
or const char*
. これは、マルチバイト文字セットのサポートについての私自身の理解に疑問を投げかけています。8 ビット文字のみをサポートする文字列に 16 ビット文字を含めるにはどうすればよいでしょうか (「Unicode をサポートする」主張を否定するコード ページを使用しない限り)。理論的には 16 ビットのコード ポイントを取得して 2 文字に分割できることは理解していますが、それではstd::string
変換されません。std::string
「Unicode」文字列に変換すると、ほとんどの目的で無効になり、ファイルに書き込んで別のプログラムで読み込むと、誤って機能する可能性があります。
それで、誰かがライブラリが「8ビットインターフェース」(std::string
またはconst char*
)を提供し、「Unicode」文字列をサポートする方法を説明できますか?
(おそらく、ここで Unicode 用語をいくつか混同しました。そこから生じる混乱については申し訳ありません)。
python - Python でのファイルからの文字読み取り
テキスト ファイルに、「I don't like this」という文字列があります。
しかし、文字列に読み込むと「I don\xe2\x80\x98t like this」となります。\u2018 が "'" の Unicode 表現であることは理解しています。私が使う
読み取りを行うコマンド。
さて、文字列に読み込まれたときに、「I don\xe2\x80\x98t like this like this」ではなく、「I don't like this」となるような方法で文字列を読み取ることは可能ですか?
2番目の編集:この問題を解決するためにマッピングを使用する人を見てきましたが、実際には、この種の ANSI から Unicode (およびその逆) への変換を行う組み込みの変換はありませんか?
javascript - 特定の文字列に Unicode 文字 (特に 2 バイト文字) が含まれているかどうかを確認する方法
より正確に言うと、特定の文字列に 2 バイト文字が含まれているかどうかを確認できるかどうか (可能であれば、その方法も) を知る必要があります。基本的に、ポップアップを開いて、中国語や日本語などの 2 バイト文字を含むテキストを表示する必要があります。この場合、ウィンドウ サイズを英語または ASCII の場合よりも調整する必要があります。誰にも手がかりがありますか?
c++ - STLでのUTF8からワイド文字への変換
プラットフォームに依存しない方法で、std::string の UTF8 文字列を std::wstring に、またはその逆に変換することは可能ですか? Windows アプリケーションでは、MultiByteToWideChar と WideCharToMultiByte を使用します。ただし、コードは複数の OS 用にコンパイルされており、標準の C++ ライブラリに限定されています。
unicode - 文字列ソーターをだますために使用できる Unicode 文字?
Unicode には一連のゼロ幅の並べ替え文字がないため、文字値によって自動的に並べ替えられるリストで特定の順序を強制できる同等の文字を決定する必要があります。残念ながら、リスト項目はアルファベット順ではありません。また、並べ替えの結果が目的の結果と一致することを保証するために、目に見える文字をプレフィックスとして付けることもできません。
通常のラテン アルファベット テキストの前にスローでき、表示されないが、必要な方法で並べ替えを「スパイク」できる Unicode 文字は何ですか?
(ところで、これはユーザー プロファイル リスト フィールドを使用して Drupal 5 で行われています。語彙/カテゴリに変更することを気にしないでください。)
unicode - C++Builder 2009 用に C++Builder アプリケーションを更新するためのガイドラインはありますか?
BCB5 以降の C++Builder で開発された一連の Win32 VCL アプリケーションがあり、それらを ECB2009 または現在呼ばれているものに移植したいと考えています。
私のアプリケーションの一部は古い TNT/TMS Unicode コンポーネントを使用しているため、コード全体で AnsiString と WideString を適切に組み合わせています。新しいバージョンでは、UnicodeString と、c_str などの関数の動作を変更する多数の #define が導入されています。
必要に応じて、BCB2007 で同じコード ベースを (Unicode 以外の方法で) コンパイルして実行できるように、可能な限り下位互換性のある方法でコードを変更したいと考えています。
特に懸念される分野は次のとおりです。
- Win32 API 関数との間で文字列を渡す
- TXMLDocument との相互運用
- RS232 通信などに使用される「生の」文字列。
変更をナイフ アンド フォークするのではなく、可能な限り下位互換性を維持しながら、移行を容易にするために適用できるガイドラインを探しています。
そのようなガイドラインがまだ存在しない場合は、ここで作成できますか?
unicode - Unicode URL デコード
Unicode 文字を URL エンコードする通常の方法は、2 つの %HH コードに分割することです。( \u4161 => %41%61 )
しかし、デコード時にユニコードはどのように区別されるのでしょうか? %41%61が\u4161対\x41\x61 ("Aa")であることをどのように知っていますか?
エンコーディングが必要な 8 ビット文字の前に%00がありますか?
それとも、ユニコード文字が失われる/分割されるはずのポイントですか?
delphi - ANSI ファイルを開き、Delphi を使用して Unicode ファイルを保存する
何らかの理由で、最近、多くのクライアント システムの *.UDL ファイルが ANSI ファイルとして保存されたため、互換性がなくなりました。これは、期待される UNICODE ファイル形式との互換性がなくなりました。最終結果は、「ファイルは有効な複合ファイルではありません」というエラー ダイアログです。
これらのファイルをプログラムで開き、Unicode ファイルとして保存する最も簡単な方法は何ですか? メモ帳でそれぞれを開いて同じファイルとして保存することでこれを実行できることはわかっていますが、[名前を付けて保存] ダイアログのエンコードセクションで「Unicode」を選択しますが、サポートを削減するためにプログラムでこれを行う必要があります呼び出します。
この問題は非常に簡単に再現できます。ディレクトリに *.txt ファイルを作成し、名前を *.UDL に変更してから、Microsoft エディタを使用して編集します。次に、メモ帳で開き、ファイルとして ANSI エンコード ファイルとして保存します。udl エディタから udl を開こうとすると、壊れていることがわかります。次に、(メモ帳を使用して) Unicode でエンコードされたファイルとして保存すると、再び適切に開きます。