問題タブ [multibyte]

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.

0 投票する
5 に答える
27317 参照

string - UTF8 対 UTF16 対 char* 対何? 誰かこの混乱を説明してくれ!

私はこのマルチバイト文字をほとんどすべて無視することができましたが、今は UI 作業を行う必要があり、この分野での私の無知が私に追いつくことを知っています! アプリケーションをローカライズするために知っておくべきことを、数段落以内で説明してくれる人はいますか? どのタイプを使用する必要がありますか (.Net と C/C++ の両方を使用しており、Unix と Windows の両方でこの回答が必要です)。

0 投票する
3 に答える
6251 参照

pinvoke - P / Invoke with [Out] StringBuilder / LPTSTRおよびマルチバイト文字:文字化けしたテキスト?


P / Invokeを使用して、アンマネージDLLから(とりわけ)文字列をフェッチしようとしていますが、何を試しても文字列が文字化けします。

私はネイティブのWindowsコーダーではないので、文字エンコードビットについてはよくわかりません。DLLは「マルチバイト文字セット」を使用するように設定されていますが、これは変更できません(他のプロジェクトが破損するため)。ラッパー関数を追加して、既存のクラスからデータを抽出しようとしています。問題の文字列は現在CStringとして存在し、マネージドStringBuilderに取得することを期待して、LPTSTRにコピーしようとしています。

これは私が正しいと信じていることです(私は明らかに無関係なビットを削除しました):




ヒントを本当に感謝します!ありがとう!!!

0 投票する
5 に答える
4449 参照

php - PHPマルチバイト文字列関数

strpos()今日、正しい結果が明らかに0であってもFALSEを返したため、php関数で問題が発生しました。これは、一方のパラメーターがUTF-8でエンコードされたが、もう一方(originはHTTP GETパラメーター)が明らかにエンコードされなかったためです。

mb_strposこの関数を使用すると問題が解決したことに気づきました。

私の質問は今です:将来これらの問題を回避するために、PHPマルチバイト文字列関数を一般的に使用するのは賢明ですか?strpos従来のstrlen、、、eregなどの関数を完全に回避する必要がありますか?

mbstring.func_overload注意: PEARライブラリを使用すると他の問題が発生するため、php.iniでグローバルを設定したくありません。PHP4を使用しています。

0 投票する
9 に答える
89963 参照

utf-8 - マルチバイト文字セットとは何ですか?

マルチバイトという用語は、文字が 1 バイトよりも広い文字セットを指しますか (UTF-8 など)、またはいずれにせよ 1 バイトよりも広い文字セット (UTF など) を指しますか? -16) ? つまり、誰かがマルチバイト文字セットについて話しているとしたら、どういう意味ですか?

0 投票する
4 に答える
2401 参照

php - 名前の変更はマルチバイト文字をサポートしていません

私が書く場合:

その後、問題なく動作しています。

しかし、それを次のように変更すると:

それは報告します

"そのようなファイル、又はディレクトリはありません..."。

しかし、マルチバイト文字をデータベースに書き込んで読み取ることができる場合、名前を変更すると失敗するのはなぜですか?

0 投票する
3 に答える
239 参照

php - PHP のすべてのマルチバイト関数の完全なリストはどこで入手できますか?

PHP のすべてのマルチバイト関数の完全なリストはどこで入手できますか? アプリケーションを調べて、非 MB 文字列関数を新しい mb 関数に切り替える必要があります。

0 投票する
1 に答える
600 参照

php - マルチバイト文字列にmb_*またはiconv_*関数を使用する必要がありますか?

今のところ、PHPではマルチバイト文字列の処理はそれほど簡単ではありません。たとえば、次の文字列の長さを取得したいとします。ä

どの関数を使用する必要がありますか?mb_*またはiconv_*?なんで?エンコーディングがUTF-8に限定されない可能性があることを考慮してください。

事前にThx!

0 投票する
2 に答える
1161 参照

ruby-on-rails - Ruby/Railsでマルチバイトフィードを安全に解析するには?

(初心者の質問で申し訳ありません...正直なところ、かなりの調査を行いました...)

RSS/ATOM フィードを解析するための Ruby on Rails コードを書いています。私のコードは、厄介な '£' 記号でスローアップしています。

私は他のことをする前に、フィードの説明とタイトルのフィールドを正規化するアプローチを試みてきました:

しかし、'£' の付いた文字列にヒットすると、mb_chars が問題を起こし、通常の Ruby String オブジェクトを返すのではないかと推測しています。エラーが発生します:

では、データベースに挿入するためにこれらの文字列を防御的に準備するための最良のプロセスは何ですか? (それらに対しても一連の文字列処理を行う必要があります)

私の問題は、処理しているフィードの形式がわからないという点で複雑です。たとえば、次の行でいくつかの運がありました。

ただし、「£」に遭遇すると、それ以降はすべて単純に切り捨てられます。

String.inspect 関数で「£」記号を表示すると、「\243」に表示されます。このシンボルを「正しく」処理するメソッドに失敗した場合は、別の値 (「GBP」など) に置き換えるだけで十分です。したがって、そのコードの助けもいただければ幸いです。

問題のフィードはhttp://www.dailymail.co.uk/sport/football/index.rssです