問題タブ [unicode-normalization]

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 に答える
3647 参照

forms - Unicodeを使用してフォームを送信するときにブラウザのUnicode正規化を回避する方法

次のUnicodeテキストをHTMLでレンダリングすると、ブラウザ(Google Chrome)は、データをサーバーにポストバックするときに何らかの形式のUnicode正規化を実行することがわかります。(おそらくフォームCで)。

しかし、聖書ヘブライ語(בְּרִיךְהוּא)のテキストを使用する場合、ここ(9ページ)で概説されているように、これはテキストを簡単に壊す可能性があります。

ブラウザの自動テキスト正規化を回避する方法はありますか?

私が直面している問題をより詳細に説明するブログ投稿を書きました:http: //blog.hibernatingrhinos.com/12449/would-it-be-possible-to-have-a-web-browser-based-ヘブライ語テキストの編集者

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

python - テキスト マイニングに適した Unicode 正規化の形式はどれですか?

私は Unicode について多くのことを読んできましたが、正規化とそのさまざまな形式について非常に混乱したままです。要するに、私は PDF ファイルからテキストを抽出し、セマンティック テキスト分析を実行するプロジェクトに取り組んでいます。

簡単な python スクリプトを使用してテキストをうまく抽出できましたが、今度はすべての同等の正字法文字列が 1 つ (そして 1 つだけ) の表現を持つようにする必要があります。たとえば、'fi' 活字合字は 'f' と 'i' に分解する必要があります。

Python のunicodedata.normalize関数には、Unicode コード ポイントを正規化するためのアルゴリズムがいくつか用意されているようです。誰かが次の違いを説明してもらえますか:

  • NFC
  • NFKC
  • NFD
  • NFKD

関連するウィキペディアの記事を読みましたが、あまりにも不透明すぎて、私の弱い脳には理解できませんでした。誰かがこれをわかりやすい英語で親切に説明してくれませんか?

また、自然言語処理プロジェクトに最適な正規化方法を推奨していただけますか?

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

objective-c - NFD Unicode を使用した NSString の正規化

私のアプリケーションでは、NFD Unicode システムを使用して NSString を正規化する必要があります。これどうやってするの?ユーザーが入力した文字列を正規化して変換する必要があり、この正規化された文字列から数値を計算する必要があります。誰でも私を助けることができますか?

0 投票する
0 に答える
292 参照

unicode - QWebView :: findTextは、Unicodeの合成発音区別符号では機能しません

QtWebKit( )を使用QWebViewしてテキストを表示していますが、を介して検索機能を実装したいと考えていQWebView::findTextます。

問題は、表示する必要のあるテキストにいわゆるUnicodeの合成発音区別符号が含まれておりQWebView::findText()、JavaScriptの両方window.find()がそれらの「マーク」(文字)を無視しないことです。

たとえば、テキストに「tị̀krăs」(「t」、「i」、「ドットの組み合わせ」、「アクサングラーブの組み合わせ」、「k」、「r」、「a」、「ブレーベの組み合わせ」、「s」)という単語がある場合、 findText()は、クエリ「tikras」(「t」、「i」、「k」、「r」、「a」、「s」)を検索するときに、その単語を見つけることができません。

この場合、他のWebKitベースのブラウザー(Chrome、Safari)は正常に動作しているようです。

この状況について私にできることはありますか?

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

macos - ファイルを Web サーバーに転送するときに Unicode 分解を変換する

私は OS X で Web サイト開発を行っていますが、ライブ Web サイト (Linux/LAMP を実行) の一部を自分のマシンで実行されている開発サーバーに移動することがよくあります。そのような例の 1 つは、イメージ (ユーザーが生成したコンテンツ、たとえば ftp ダウンロードを介して) をダウンロードし、それらを何らかの方法で処理して、生産サイトに戻すことです。

関連する画像ファイルは Linux マシンで作成されており、ファイル名は NFC 分解を使用して UTF-8 でエンコードされているようです。一方、OS X の HFS+ ファイル システムは、NFC で分解されたファイル名を許可せず、NFD に変換します。ただし、完了してファイルをアップロードしたい場合、Linuxは両方をサポートしているため、ファイルの名前はNFD分解を使用するようになります。その結果、新しくアップロードされた (場合によっては置き換えられた) ファイルは、予期された URL でアクセスできなくなります。

転送中 (できれば) または転送後にファイルの UTF 分解を変更する方法を探しています (convmv良いオプションのように見えますが、このサーバーに十分な権限がないため、この特定のケースでは不可能です)。事前にやるのは無理だと思います。Transmit と rsync (通常使用するデプロイ スクリプトを使用) を使用して FTP アップロードを試みましたが、役に立ちませんでした。rsyncの--iconvオプションは理想的に思えましたが、残念ながら、rsync 2.6.9 を実行しているサーバーはそれを認識しませんでした。

かなりの数の人が同様の問題を抱えていると思います。解決策や回避策を聞いてうれしいです!

更新:この場合、Ubuntuを実行している仮想マシンにファイルを再同期し、そこでconvmvを実行してから、ステージングサーバーに再度再同期しました。これはかなりうまく機能しますが、少し時間がかかります。おそらく、OS X に ext ファイル システムをマウントし、元の NFC で分解されたファイル名を使用して、代わりにそこにファイルを保存することは可能でしょうか?

また、私のユースケースである将来のWordPressインストールでこの問題をすべて一緒に回避するには、ファイルをアップロードするadd_filter('sanitize_file_name', 'remove_accents'); 前に単純なものを追加できます。

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

python - Python 2.7 での unicodedata.normalize の使用

繰り返しますが、ユニコードの質問で非常に混乱しています。unicodedata.normalizeを正常に使用して非 ASCII 文字を期待どおりに変換する方法がわかりません。たとえば、文字列を変換したい

unicodedata.normalize がこれを行う方法であると確信していますが、動作させることはできません。文字列を変更しないだけです。

私は何を間違っていますか?

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

ruby - Unicodeエンティティを書記素で分割する

私にくれます

Rubyに書記素で分割させるにはどうすればよいですか?

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

macos - OS X - 正規化されたファイル名を計算する方法

Windows と OS X で生成されたファイル名の間のマッピングを作成する必要があります。OS X が「すべてのファイル名を分解された Unicode に変換する」ことは知っていますが、「ほとんどのボリューム形式は、これらの標準形式の正確な仕様に従っていません」

したがって、標準の UTF8 API を使用して Windows 名を NFD に変換し、正しい OS X 名を持っていることを確認するのは簡単なことではないようです。実際にファイル システムにファイルを作成せずに実際の OS X ファイル名を特定し、ディレクトリをスキャンして実際に作成されたファイルを確認する方法はありますか?

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

php - PHP mysql_* SET NAMES UTF 8 と utf8_unicode_ci を使用した Mysql テーブルを使用した文字列比較

State列を持つ Mysql テーブルがあります。状態はヨーロッパ全体からのもので、テーブルと列はutf8_unicode_ci.

使用するデータベースを呼び出すとき

次に、この単純なループで実行します

期待どおりに新しい値に初めて到達すると、次のようになります。

boolean false
BRUSSELS
boolean true

次回私が得る時:

boolean true
BRUSSELS
boolean true

私が期待するほど。

問題は、各パスが生成されるときに非ラテン文字にヒットしたときに発生します。

boolean false
バーデン・ヴュルテンバー
boolean true

それらが等しくなるように設定すると、次のレコードがプルされると(そして各レコードが同じように入力された場合)、失敗します。これは、同じエンコーディングを使用した場合です。実際には、それらが同じであることを認識する必要があります文字が異なって入力されていても。

何が起こっているかに関係なく、比較から真の結果を得ようutf8_encodeと試みNormalizer::normalizeたので、これを制御構造で使用できます(たとえば、前回見た場合は、今回は印刷しないでください)が失敗します。

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

python - ユニコードのアクセント付き文字をアクセントなしの純粋なASCIIに変換する方法は?

http://dictionary.reference.com/browse/apple?s=tのような辞書サイトからコンテンツをダウンロードしようとしています。

私が抱えている問題は、元の段落に波線や逆文字などがすべて含まれているため、ローカル ファイルを読み取ると、\x85、\xa7、\x8d などの変なエスケープ文字になってしまうことです。 .

私の質問は、これらすべてのエスケープ文字をそれぞれの UTF-8 文字に変換する方法はありますか?

Python 呼び出しコード:

Windows 7 システムで wget-1.11.4-1 を使用しています (Linux の人を殺さないでください。これはクライアントの要件でした)。wget exe は Python 2.6 スクリプト ファイルで起動されています。