問題タブ [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.
php - これらの PHP mbstring 設定は何をしますか?
これらのphp.ini設定が何をするのかを正確に把握しようとしています。異なる値に設定するとどうなりますか? それらはいつ必要ですか?それらはいつ有害ですか?
- mbstring.language
- mbstring.http_input
- mbstring.http_output
- mbstring.encoding_translation
いつものように、PHP マニュアルはあまり役に立ちません。
編集: 明確にするために、文字エンコーディングのしくみを理解し、PHP のマルチバイト関数がシングルバイト関数とどのように異なるかを理解しています。上記の設定が何をするかについての詳細を探しています。
EDIT 2 : OK、実際には、1 行の要約があるランタイム構成のページだけでなく、より多くのドキュメントを提供しているようです。これらのうち最初の 3 つには、同様の名前の関数があり、関数のバージョンを説明するページに詳細があります。上記のリンクを追加しました。
編集 3 : 報奨金を追加します。これらの設定、特に最後の 3 つの設定が正確に何をするかについて、具体的な詳細を探しています。彼らは何から、何に変換し、いつ変換しますか?
php - PHP の mbstring.func_overload をオンにして文字列内のバイトを検索する
私は PHP を で構成しているmbstring.func_overload = 7
ので、すべてのシングルバイト文字列関数は対応するマルチバイト関数にマップされます。しかし、文字列をバイト配列として扱う必要がある場合もあります。たとえば、サイズを計算するときや暗号化を行うときなどです。
ここで最善のアプローチは何ですか?文字列が実際にエンコードされる方法ではない場合でも、マルチバイト関数を使用してシングルバイト エンコーディングを渡すことはできますか? 例えば:
編集: PHP のソースを調べたときに、元の関数の名前が mb_orig_strlen のように mb_orig_X に変更されていることに気付きました。文書化されていないため、おそらく安全ではありませんが、興味深いものです。
c# - RegEx を使用してマルチバイト文字列を検索する
WebBrowser コントロールを使用して html ドキュメントに取り組んでいます。単語を検索してブラウザで強調表示するユーティリティを作成する必要があります。文字列が英語の場合はうまく機能しますが、韓国語などの他の言語の文字列の場合は機能しないようです。
以下のコードが機能するシナリオは-
ユーザーが Web ページで "Example" という単語を選択したとします。ここで、この単語とその出現箇所をすべて強調表示する必要があります。また、byteOffset を計算する必要があります (コード スニペットはそれのみを行います)。
現在、英語の場合、以下のコードは正常に機能しますが、韓国語などの言語の場合はまったく機能しません。
for-eachループに入らない
ここで _documentContent には、Web ページのソースが文字列として含まれています。発生番号は番号です。選択した単語が文書内で出現する頻度
コードは次のとおりです。strTemp には韓国語の文字列が含まれています。
emacs - emacsにマルチバイトでエンコードされたファイルを正しく表示させるにはどうすればよいですか? ラバですか?
マルチバイト ファイルを開くと、次のようになります。
php - PHP + MySQL を使用した UTF-8 エンコーディングの問題
MySQL 4 (元々latin2
エンコーディングに設定されていた) から MySQL 5 にデータを移動し、エンコーディングを UTF-8 に設定しました。phpMyAdminで見栄えがよく、UTF-8 で問題ありません。しかし、ウェブサイトの一部の文字の代わりにクエスチョン マークが表示されます。ウェブサイトのエンコーディングもUTF-8に設定されているので、どこに問題があるのかわかりません。
PHP および HTML ファイルも UTF-8 に設定されます。
どうすればこれを修正できますか?
php - PHP preg_functions マルチバイトは安全ですか?
PHP で利用できるマルチバイトの 'preg' 関数はありません。それは、デフォルトの preg_functions がすべて mb セーフであることを意味しますか? PHPドキュメントに言及が見つかりませんでした。
ruby - ruby 1.9:文字列のバイトインデックスベースのスライスを取得するにはどうすればよいですか?
私はUTF-8文字列を扱っています。文字ベースではなく、バイトベースのインデックスを使用してスライスを取得する必要があります。
Web で への参照を見つけましたString#subseq
。これは のようなはずですString#[]
が、バイトです。残念ながら、1.9.1 にはなっていないようです。
さて、なぜ私はそれをしたいのですか?マルチバイト文字の途中でスライスすると、無効な文字列になる可能性があります。これはひどい考えのように聞こえます。
さて、私は を使用していStringScanner
ますが、その内部ポインターはバイトベースであることがわかりました。ここで他のオプションを受け入れます。
これが私が今取り組んでいるものですが、かなり冗長です:
と はどちらもix
からpos
来てStringScanner
いるので、バイトベースです。
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 を使用できるようになるのでしょうか?
アップデート
master
GitHub の現在の2-3-*
および3-0-unstable
rails ブランチの ActiveSupport でもテストしたことを付け加えておきます。同じ結果です。
c++ - マルチバイト文字セットの _tcslen: WCHAR [1] を const char * に変換する方法は?
インターネットで約 2 時間検索しましたが、解決策が見つかりません。
私のプログラムにはマルチバイト文字セットがあり、コードには次のものがあります。
そして、コンパイル中にエラーが発生しました:
'strlen': パラメーター 1 を 'WCHAR [1]' から 'const char *' に変換できません
この WCHAR[1] を const char * に変換する方法は?
php - 分音符号と mb_substr の問題
関数を使用して分音記号でユニコード文字列をスライスしてmb_substr
いますが、単純なsubstr
関数を使用するのと同じように機能します。Unicode 文字を半分に分割し、疑問符のひし形を表示します。
例えば
何が間違っている可能性がありますか?