問題タブ [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 投票する
3 に答える
12919 参照

php - これらの PHP mbstring 設定は何をしますか?

これらのphp.ini設定が何をするのかを正確に把握しようとしています。異なる値に設定するとどうなりますか? それらはいつ必要ですか?それらはいつ有害ですか?

いつものように、PHP マニュアルはあまり役に立ちません。

編集: 明確にするために、文字エンコーディングのしくみを理解し、PHP のマルチバイト関数がシングルバイト関数とどのように異なるかを理解しています。上記の設定が何をするかについての詳細を探しています。

EDIT 2 : OK、実際には、1 行の要約があるランタイム構成のページだけでなく、より多くのドキュメントを提供しているようです。これらのうち最初の 3 つには、同様の名前の関数があり、関数のバージョンを説明するページに詳細があります。上記のリンクを追加しました。

編集 3 : 報奨金を追加します。これらの設定、特に最後の 3 つの設定が正確に何をするかについて、具体的な詳細を探しています。彼らは何から、何に変換し、いつ変換しますか?

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

php - PHP の mbstring.func_overload をオンにして文字列内のバイトを検索する

私は PHP を で構成しているmbstring.func_overload = 7ので、すべてのシングルバイト文字列関数は対応するマルチバイト関数にマップされます。しかし、文字列をバイト配列として扱う必要がある場合もあります。たとえば、サイズを計算するときや暗号化を行うときなどです。

ここで最善のアプローチは何ですか?文字列が実際にエンコードされる方法ではない場合でも、マルチバイト関数を使用してシングルバイト エンコーディングを渡すことはできますか? 例えば:

編集: PHP のソースを調べたときに、元の関数の名前が mb_orig_strlen のように mb_orig_X に変更されていることに気付きました。文書化されていないため、おそらく安全ではありませんが、興味深いものです。

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

c# - RegEx を使用してマルチバイト文字列を検索する

WebBrowser コントロールを使用して html ドキュメントに取り組んでいます。単語を検索してブラウザで強調表示するユーティリティを作成する必要があります。文字列が英語の場合はうまく機能しますが、韓国語などの他の言語の文字列の場合は機能しないようです。

以下のコードが機能するシナリオは-

ユーザーが Web ページで "Example" という単語を選択したとします。ここで、この単語とその出現箇所をすべて強調表示する必要があります。また、byteOffset を計算する必要があります (コード スニペットはそれのみを行います)。

現在、英語の場合、以下のコードは正常に機能しますが、韓国語などの言語の場合はまったく機能しません。

for-eachループに入らない

ここで _documentContent には、Web ページのソースが文字列として含まれています。発生番号は番号です。選択した単語が文書内で出現する頻度

コードは次のとおりです。strTemp には韓国語の文字列が含まれています。

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

emacs - emacsにマルチバイトでエンコードされたファイルを正しく表示させるにはどうすればよいですか? ラバですか?

マルチバイト ファイルを開くと、次のようになります。

代替テキスト

0 投票する
10 に答える
59915 参照

php - PHP + MySQL を使用した UTF-8 エンコーディングの問題

MySQL 4 (元々latin2エンコーディングに設定されていた) から MySQL 5 にデータを移動し、エンコーディングを UTF-8 に設定しました。phpMyAdminで見栄えがよく、UTF-8 で問題ありません。しかし、ウェブサイトの一部の文字の代わりにクエスチョン マークが表示されます。ウェブサイトのエンコーディングもUTF-8に設定されているので、どこに問題があるのか​​わかりません。

PHP および HTML ファイルも UTF-8 に設定されます。

どうすればこれを修正できますか?

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

php - PHP preg_functions マルチバイトは安全ですか?

PHP で利用できるマルチバイトの 'preg' 関数はありません。それは、デフォルトの preg_functions がすべて mb セーフであることを意味しますか? PHPドキュメントに言及が見つかりませんでした。

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

ruby - ruby 1.9:文字列のバイトインデックスベースのスライスを取得するにはどうすればよいですか?

私はUTF-8文字列を扱っています。文字ベースではなく、バイトベースのインデックスを使用してスライスを取得する必要があります。

Web で への参照を見つけましたString#subseq。これは のようなはずですString#[]が、バイトです。残念ながら、1.9.1 にはなっていないようです。

さて、なぜ私はそれをしたいのですか?マルチバイト文字の途中でスライスすると、無効な文字列になる可能性があります。これはひどい考えのように聞こえます。

さて、私は を使用していStringScannerますが、その内部ポインターはバイトベースであることがわかりました。ここで他のオプションを受け入れます。

これが私が今取り組んでいるものですが、かなり冗長です:

と はどちらもixからpos来てStringScannerいるので、バイトベースです。

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

ruby - Ruby 1.9:マルチバイト文字列を正しく大文字と小文字を区別するにはどうすればよいですか?

そのため、matz はRuby 1.9.1 で保持upcaseし、downcase制限することを決定しました。/[A-Z]/i

ActiveSupport::Multibyteルビー 1.8.x でString#mb_chars.

しかし、ruby 1.9.1 で試してみるとうまくいかないようです。以下は、私が作成した簡単なテスト スクリプトと、得られた出力です。

では、どうすれば国際upcase化さdowncaseれ、Ruby 1.9.1 を使用できるようになるのでしょうか?

アップデート

masterGitHub の現在の2-3-*および3-0-unstablerails ブランチの ActiveSupport でもテストしたことを付け加えておきます。同じ結果です。

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

c++ - マルチバイト文字セットの _tcslen: WCHAR [1] を const char * に変換する方法は?

インターネットで約 2 時間検索しましたが、解決策が見つかりません。

私のプログラムにはマルチバイト文字セットがあり、コードには次のものがあります。

そして、コンパイル中にエラーが発生しました:

'strlen': パラメーター 1 を 'WCHAR [1]' から 'const char *' に変換できません

この WCHAR[1] を const char * に変換する方法は?

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

php - 分音符号と mb_substr の問題

関数を使用して分音記号でユニコード文字列をスライスしてmb_substrいますが、単純なsubstr関数を使用するのと同じように機能します。Unicode 文字を半分に分割し、疑問符のひし形を表示します。

例えば

何が間違っている可能性がありますか?