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

php - この正規表現はマルチバイトセーフでしょうか?

次の正規表現を使用して、画像ファイル名に英数字、アンダースコア、ハイフン、小数点のみが含まれていることを確認しています。

これは正常に動作します。しかし、マルチバイト文字について懸念があります。未確定のエラーを防ぐためにそれらを具体的に処理する必要がありますか、それともこの正規表現は mb ファイル名を拒否する必要がありますか?

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

php - latin1 文字以外の mb_detect_encoding() の不一致

mb_detect_encoding() 関数を使用して、文字列に latin1 (ISO-8859-1) 以外の文字が含まれているかどうかを確認しています。

日本語は latin1 の一部ではないため、テスト文字列内のテキストとして使用していますが、文字列が関数に渡されると、ISO-8859-1 に対して OK を返すようです。コード例:

「ISO-8859-1」の代わりに「ASCII」を使用してみましたが、これは正しく false を返します。矛盾を説明できる人はいますか?

0 投票する
6 に答える
728 参照

php - 多言語テキスト、php、および mysql のヘルプ

比較的簡単だと思ったことをやろうとしても、問題が尽きることはありませんでした。

英語と他の言語、いくつかのマルチバイト (つまり、日本語、韓国語など) の混合でユーザー入力テキストを受け入れることができるフォームが必要であり、これは php によって処理され、保存されます (安全に、SQL インジェクションを回避します)。 mysql データベースで。また、データベースからアクセスし、処理し、画面上で使用する必要があります。

ラテン文字には問題なく設定できましたが、ラテン文字とマルチバイト文字を組み合わせて追加すると文字化けします。

宿題をしようとしましたが、今頭を壁にぶつけています。

魔法の引用符はオフです。utf8_encode/decode、htmlentities、addslashes/stripslashes、および (mysql では) テーブルのフィールドに "utf8_general_ci" と "utf8_unicode_ci" の両方を使用してみました。

問題の一部は、私がそれを台無しにする可能性のある場所が非常に多くあるため、どこから問題を解決し始めればよいかわからないことです。

これについてのすべての助けに感謝します。理想的には、誰かが実際に動作する php コードの例を持っているか、適切な mysql テーブル形式を知っている場合、それは素晴らしいことです。

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

php - PHP真のマルチバイト文字列シャッフル機能?

マルチバイト文字列に固有の問題があり、文字を削除したり、失ったり、繰り返したりすることなく、PHP で長い UTF-8 エンコードされたマルチバイト文字列をある程度ランダムにシャッフルできる必要があります。

str_shuffle の下の PHP マニュアルには、機能しないマルチバイト関数 (最初のユーザーが提出した関数) があります。 119 文字または 118 文字の文字列が返されました。元の文字列に含まれていない場合でも、重複した文字が表示されることがあります。だからそれは機能的ではありません。

これをより複雑にするために、可能であれば日本語の UTF-8 改行、改行、および句読点も含める必要があります。

UTF-8 mb 文字列を使用して複数の言語を扱った経験のある人は誰でも助けてくれますか? PHPには、これを行うための組み込み関数がありますか? str_shuffle はまさに私が欲しいものです。マルチバイト文字でも機能する必要があるだけです。

どうもありがとう!

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

php - PHP とマルチバイト文字に関するヘルプ

簡単だと思っていた問題が、かなり複雑になってきました。

ローマ字、西ヨーロッパ、日本語、および韓国語の文字と句読点が混在する長い UTF-8 文字列があります。多くはマルチバイト文字ですが、そうでないものもあります (私はそう思います)。

私は2つのことをする必要があります:

  1. 重複した文字がないことを確認してください (そして、その新しい文字列を出力し、重複を取り除いてください)。
  2. その新しい文字列をランダムにシャッフルします。

(申し訳ありませんが、コードの引用を正しくフォーマットすることができないようです...)

と:

誰かが非常に親切に提供してくれたこれらの2つの関数を使用して、私はすべて設定されていると思いました...不思議なことに、一意の文字列(重複なし)とシャッフルされた文字列には同じ数の文字が含まれていないようです. (私はブラウザからこれらの文字を強調表示し、別のアプリケーションにカットアンドペーストしています... 1つの文字列は常に上記のものとは異なる長さですが、多くの場合それは異なります...同じ数の文字が得られるわけではありません毎回切り捨てられます!)。

申し訳ありませんが、私は PHP についても、これを自分で調べるためのコーディングについても十分に知りませんが、一体何が問題になっているのでしょうか? 大きくて長い糸をシャッフルするだけなら簡単そうに見えますが、思ったより難しいようです。これを行う別の簡単な方法はありますか?最初に文字列をそれぞれの 16 進数に変換し、それらをシャッフルしてから、UTF-8 に戻す必要がありますか? 画面ではなくファイルに出力する必要がありますか?

誰か提案がありますか?申し訳ありませんが、私はこれに非常に慣れていないので、おそらく私は本当に愚かなことをしているだけです.

0 投票する
7 に答える
25428 参照

php - UTF-8 文字が正しく表示されない

これは私のPHPコードです:

出力は次のとおりです。

私に何ができる?$resultMySQL データベースに入れる必要があります。

0 投票する
7 に答える
7277 参照

python - 2つのマルチバイトバイナリデータ変数間の最速のビット単位のxor

次のロジックで実装する最速の方法は何ですか。

私の場合、キーは20バイトのsha1ダイジェストであり、データは20バイトから数メガバイト(1、2、3)メガバイトの長さのバイナリデータです。

アップデート:

OKみんな。これは3.5倍高速な実装で、データとキーを4、2、または1バイトのチャンクで分割します(私の場合、ほとんどの場合、4バイトの長整数です)。

大量のメモリを使用しますが、私の場合は大したことではありません。

速度をさらに数回上げる方法はありますか?:-)

最終更新:

OK、OK...numpyがその仕事をしました。それはただの速さです:

最初の実装ではギガバイトを処理するのに8分50秒かかり、2番目の実装では約2分30秒、最後の実装ではちょうど....0分10秒でした。

アイデアとコードを提供してくれた人に感謝します。あなたは素晴らしい人です!

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

php - (鉑) php の文字列関数と UTF8

次のステートメントの出力が 1 ではなく 3 になるのはなぜですか?

事はそれです

UTF-8 としてエンコードされたこの記号を適切に出力します。

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

encoding - Java でのマルチバイト エンコーディング

マルチバイト エンコーディングのサポートを追加する方法がわかりませんし、マルチバイト言語に関する知識もほとんどありません。検索エンジンに取り組んでいる私のアプリケーションは、すべてのプログラミング言語のコードをスキャンします。ソースコードによっては、コメント セクションに CJK エンコーディングが含まれている場合があります。簡単にするために、ソース コード サンプルとして Java を使用し、アプリケーションも Java で作成します。

最初に、インデックスを作成するソース コードに CJK エンコーディングがあるかどうか、およびそれがアプリケーションによってエンコードされているかどうかを確認するテスト ケースを作成したいと考えています。サポートが含まれていない場合、テストが失敗するようにして、将来追加できるようにしたいと考えています。

しかし、それをテストする方法、単体テスト用の入力サンプルにCJKを入力する方法、およびJavaアプリケーションコンソールに出力されるものはわかりません。

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

php - MSSQL サーバーから MySQL へのマルチバイト文字の移行

Microsoft SQL Server から MySQL にデータを移行するための PHP スクリプトを作成しています。これは、マルチバイト文字を除いて、これまでのところスムーズです。誰かがこれを乗り越えるのを手伝ってくれませんか。PHPとMySQLデータベースの観点から注意すべき点は何ですか。

  1. MySQL の構成を変更する必要はありますか?
  2. PHP でマルチバイト文字の文字エンコーディングを変更する必要がありますか?
  3. 私が見逃しているものは他にありますか?

ありがとう。