問題タブ [unicode-escapes]

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 投票する
2 に答える
61 参照

escaping - 文字コード ページ: 「(このソース コードで) 次にレンダリングされる文字はエスケープされるか?」を意味するコード ページの割り当てを制御します。

私は、この質問が答えられないか、答えるのが非常に難しいかもしれないことを認めます.

また、この読者はスクリプト言語などのエスケープ シーケンスに精通していると思いますが、明確にするために、この記事の後半でその概念を確認します。

「エスケープされた」とは、たとえば、「次の文字を通常どおり使用しないでください。別のコンテキストで解釈してください」と解釈される印刷可能な文字を意味します。このコンテキストには、コードとして解釈されるのではなく、リテラルの印刷された文字として解釈されることを意図した文字、または逆に、コードとしてではなく解釈したいリテラル文字として通常解釈される可能性のある文字が含まれます。私の例 (より紛らわしいことに、私は今気づきました) は後者のケースを使用しています。

具体例: 'nix sed で使用される正規表現。sed 用にエスケープされていない場合は、次のようになります。

しかし、sed が文字をリテラル文字としてではなく正規表現コードとして解釈することを知っているように、シェルが正規表現を sed に渡すためにエスケープされると、文字列全体がはるかに醜くなります (そして人間が読める可能性ははるかに低くなります):

エスケープ文字 (またはシーケンス) は、プログラミングの悩みの種の 1 つです。これは特に、長い文字列 (またはコード行) に当てはまります。このような場合は、細心の注意を払うか、エスケープ シーケンスを作成および削除するツールを使用することが実際的です。

私は周りを見回しましたが、私が提案するような解決策に遭遇しませんでしたが、これが存在する場合に名前が付けられる可能性があることを知らず、専門家ではないため、検索は無駄でした.

「コード ページの割り当てを制御する」などと言う場合、説明したように、コンピューターがテキストのレンダリングとレイアウトの制御に使用する、印刷可能な (および印刷不可能な) 文字のテーブルの意味でのコード ページについて話している。「コードページ」に関するウィキペディアの記事。必要に応じて、これらを (大まかに) 「コンピューター アルファベット」と呼ぶことができます。「コード ページの割り当て」とは、レンダリングされたグリフ (印刷可能な文字) または印刷されていない制御コード (印刷不可能な文字) として解釈されるコンピューターの「アルファベット」のエントリを意味します。

アイデアは、特定の印刷されていない制御コード ページの割り当てを指定して、「次の文字をエスケープされたものとして解釈する」ことを意味し、テキスト レンダラーがそれを「読み取って」、エスケープされた文字の色や明るさなどを変更することでプログラマーに示すことができるようにすることです。制御コードに続きます。および/または制御コード ページの割り当ては、印刷可能なグリフである可能性があります。たとえば、ローマ字に関連するアルファベットの他のアクセントと競合しない、標準化された邪魔にならないアクセント グリフです。

この印刷されていないコード ページの割り当ても、同様にインタプリタとコンパイラによって読み取られます。

私が上で与えたものよりも長い正規表現のレンダリングされたバージョンを考えてみましょう:

エスケープされていない、醜い正規表現

「次の文字がエスケープされる」ことを意味する印刷されていないコードページ割り当てがある場合、エスケープされた文字は、エスケープされていることを示すために、たとえば単純に明るくレンダリングできます。

制御コードの見苦しさを軽減 正規表現をエスケープ

これは、代わりにエスケープシーケンスに印刷された文字を使用する次のものよりも、人間が解釈するのがはるかに簡単です (ただし、これを正規表現として開始するのは困難です)。

ここに画像の説明を入力

私がこれを書いているとき、普遍的ではないにしても支配的な状況は、印刷されていないコードページの割り当てではなく、エスケープシーケンスで印刷された文字を使用することです。

提案されたソリューションに付随する問題は、プログラマーが使用する非常に多くのツールによるエスケープされたコード ページの割り当てへの準拠を保証することです。また、プログラマーは、エスケープされたコード ページの割り当てをサポートするユーティリティとサポートしないユーティリティを把握する必要があります。また、そのようなコード ページの割り当てを採用するツールは、下位互換性があるかどうか (エスケープ シーケンスに印刷された文字と印刷されていないコード ページの割り当ての両方を使用できるかどうか) を明示することが最善です。

エスケープ制御コード ページの割り当て以外の方法でこれを実現するプログラミング言語やツールは好みませんそれでも、これを行うツールについては非常に興味があります。

結局のところ、私の質問は、これを行うプログラミング言語が存在するか、またはこれを行うコードページ割り当てが既に存在するかということです。

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

php - 10 進数字参照 (NCR) &#xxxxx として表示される MySQL エントリを検索する方法は?

次のようなクエリでMySQLデータベースを検索しているとき:

SELECT * FROM mytable WHERE mytable.title LIKE '%副教授%';

("副教授" は 3 つの漢字で、10 進数字参照 (NCR) は " 副教授")、結果が得られませんでした。

phpMyadmin を調べて "mytable" を参照すると、見つかるはずのエントリが " 副教授" として表示されます。それが検索の失敗の理由だと思います。

同じ列のすべてのエントリが数字参照であるとは限らず、一部は通常の文字参照です。これは、phpMySQLAdmin に表示されるテーブル列の 1 つの写真です。

ここに画像の説明を入力

NCR に表示されているかどうかに関係なく、1 つの形式を使用して MySQL のテーブル内のすべてのエントリを検索するにはどうすればよいでしょうか。または、スクリプトを実行して NCR エントリを変換する必要がありますか? ありがとう。

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

go - バックスラッシュでエンコードされた Unicode 文字を含む文字列をデコードする方法は?

次のように保存された文字列がありますa

に変換する方法はありaますbか?

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

xml - エスケープ URL - XML - ライブ タイル - UWP

C# には System.Security.SecurityElement.Escape(url) がありますが、BackgroundTask ではこれにアクセスしません。私は試してみます:

url= url.Replace("&", "&amp;").Replace("<", "&lt;").Replace(">", "&gt;").Replace("\"", "&quot;").Replace("'", "&apos;");

しかし、この方法は非常に退屈です。ネイティブメソッドでこれを行う方法はありますか? 最初に書いたように。

UrlEncode は私にとってユーティリティではありません。エスケープ URL が必要なだけです。

(私はこのリンクに基づいています: http://weblogs.sqlteam.com/mladenp/archive/2008/10/21/Different-ways-how-to-escape-an-XML-string-in-C.aspx )

何か案が?

前もって感謝します

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

java - 2 つのゼロの隣にヌルバイトをエスケープする

static final として定義された次のシーケンスをエスケープする必要があります

.concat()メソッドも+文字列演算子も使用せずに、これをどのようにエスケープしますか?

これは有効ではなく、最初のものと同じではありません。

これもそうではありません。

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

groovy - 三重引用符で囲まれた文字列内の "\1" が Unicode 0x1 コード ポイントに評価されるのはなぜですか

text を含む String が必要\1でした。

私がしたことは(実際の文字列はもっと長いですが、重要ではありません):

その結果、Unicode0x1コードポイントを含む文字列が生成されました。

私がすべきだったのは、次のようにバックスラッシュをエスケープすることだと思います:

私が理解できないのは、Groovy がここでエラーを報告しなかった理由です。Unicodeエスケープは次のようになるはず\u1だと思いましたか?

この文字列を XML 要素に入れようとしたときに、構文エラーの代わりに実行時例外が発生しました。

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

javascript - js ユニコード文字 `\u1F310` をレンダリングできません

たとえば、オメガ記号は適切'\u03A9'にレンダリングされますが、地球記号 '\u1F310' http://www.fileformat.info/info/unicode/char/1f310/index.htm - ではありません。コンソールとノード環境で試した