web-dev-qa-db-ja.com

このシンボルがFirefoxやEdgeではなくChromeに表示されるのはなぜですか?

そのため、このWebページはこれらのシンボルでレンダリングされており、このWebサイト/アプリケーション全体で見られますが、他のサイトでは見られません。誰でも私に言うことができます1)シンボルは何ですか2)それが1つのブラウザーでのみ表示される理由

enter image description here

38
Joseph

その文字はU + 2028行区切り文字で、一種の改行文字です。 HTMLの<br>に相当するUnicodeと考えてください。

ここに表示される理由について:私の推測では、内部データベースはLSEPを使用して、リテラル改行またはHTMLタグ(データベースを破損またはセキュリティエラーを引き起こす可能性がある)と競合しません。

  1. データベースをHTMLに変換するサーバー側スクリプトは、LSEPを<br>に置き換えることを怠りました
  2. Chromeは、LSEPを印刷(可視)文字として表示することで標準を破ります。
  3. Chromeのみが検出する印刷文字としてLSEPを表示するフォントがインストールされています。どのフォントかを判断するには、問題のテキストを右クリックして「検査」をクリックし、右側のパネルの「計算済み」タブに切り替えます。一番下には、問題のあるフォントを見つけるのに役立つ「レンダリングされたフォント」というラベルの付いたセクションがあります。

ユニコード標準の第5.8章「改行ガイドライン」から抜粋した行区切り記号の詳細( このPDFの12ページ ):

行区切りと段落区切り

段落の区切りは、エンコード方法に関係なく、段落間の区切りを示すために使用されます。行区切り記号は、通常は段落内で改行のみが発生する場所を示します。例えば:

これは、この時点で行区切り記号がある段落です。
Wordを「原因」とは別の行に表示させますが、
典型的な段落のインデント、文分割、行間隔、または
フラッシュの変更(右、中央、または左の段落)。

比較のために、行区切り記号は基本的にHTML <BR>に対応し、段落区切り記号はHTMLの古い使用法<P>に対応します(現代のHTMLは段落を<P>...</P>で囲むことで区切ります)。ワープロでは、通常、キーボードを使用して段落区切り文字を入力しますRETURNまたはENTER;行区切り文字は通常、SHIFT-ENTERなどの変更されたRETURNまたはENTERを使用して入力します。

レコード分離文字は、レコードを区切るために使用されます。たとえば、表形式のデータを交換する場合の一般的な形式は、セルをタブで区切り、セルの行の最後にCRLFを使用することです。この関数は行分離とまったく同じではありませんが、同じ文字がよく使用されます。

従来、NLFは行区切り記号(およびレコード区切り記号)として始まりました。プログラムエディターなどの単純なテキストエディターで行区切りとして使用されます。プラットフォームとプログラムが自動行折り返しでWord処理を処理し始めると、これらの文字は段落区切りを表すように再解釈されました。たとえば、Windows NotepadプログラムやMac SimpleTextプログラムなどの単純なプログラムでも、プラットフォームのNLFを行区切り記号ではなく段落区切り記号として解釈します。 NLFが段落の区切りを表すように再解釈されると、場合によっては別の制御文字が行区切りとして使用されるようになりました。たとえば、Microsoft Wordでは垂直タブVTが使用されます。ただし、行区切り文字の文字の選択は、NLFの文字の選択よりも標準化されていません。多くのインターネットプロトコルと多くの既存のテキストは、NLFを行区切り記号として扱うため、実装者はすべての状況でNLFを段落区切り記号として単純に扱うことはできません。

参考文献:

nicodeテクニカルレポート#13:改行ガイドライン

一般的な句読点(U + 2000–U + 206F)チャートPDF

SE:ユニコードになぜそんなに多くのスペースと改行があるのですか?

SO:ユニコード文字2028(LS /行区切り文字)は何に使用されますか?

codepoints.netのU + 2028 ここでの誤植は、U + 2028がUnicode標準のv。1.1で追加されたと言いますが、これは偽です— 1.0で追加されました

45
9999years

このツールを使用できます... http://www.nousphere.net/cleanspecial.php

...Chromeが表示するすべての特殊文字を削除します。

手順:HTMLを貼り付け、HTMLオプションを使用してクリーンアップします。

このページのエディターで文字を手動で削除し、結果を確認できます。

HTMLをファイルに貼り付けて保存します:)

4
Kapil Bathija

最近この問題に遭遇し、いくつかの修正を試みましたが、最終的にはテキストをVIMに貼り付ける必要があり、余分なスペースを削除する必要がありました。いくつかのHTMLクリーナーを試しましたが、どれも機能しませんでした。VIMが鍵でした!

4
Peter

9999年の答えは素晴らしいです。

TwigテンプレートでSymfonyを使用する場合、空のTwigブロックを確認することをお勧めします。私の場合、それは内部に目に見えない文字を持つ空のTwigブロックでした。

LSEP文字は特定のデバイス/ブラウザでのみ表示されました。一方、ヘッダーの上に空白スペースがあり、目に見えない文字を見ることができませんでした。

GETリクエストを調べて、値1f18がオープンhtmlタグの前にあることを確認する必要がありました。

空のTwigブロックを削除すると、そのブロックはなくなりました。

これがいつか誰かを助けることを願っています...

2
Kaizoku Gambare

私は@Kapil Bathijaに同意します-基本的に、HTMLコードをコピーして http://www.nousphere.net/cleanspecial.php に貼り付けて変換することができます。

次に、特殊文字が変換されます-単語間のスペースを削除するだけで、バックスペース2xを押す必要があることに気付くでしょう。つまり、翻訳できない無効な文字があります。

私は同じ問題を抱えていましたが、その後はうまく機能しました。

0
jP_