問題タブ [smart-quotes]

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

php - Word のスマート クォーテーションと全角ダッシュを文字列に変換するにはどうすればよいですか?

テキストエリアのあるフォームがあります。ユーザーは、データベースに保存されているテキスト ブロックを入力します。

ユーザーは、スマート クォーテーションやエムダッシュを含むテキストを Word から貼り付けることがあります。これらの文字は、データベースでは「、」、「、、」として表示されます。</p>

スマート クォートを通常のクォートに変換し、emdash を通常のダッシュに変換するには、入力文字列に対してどの関数を呼び出す必要がありますか?

私はPHPで働いています。

更新: これまでに素晴らしい回答をありがとうございました。エンコードに関する Joel のサイトのページは非常に有益です: http://www.joelonsoftware.com/articles/Unicode.html

私の環境に関するいくつかのメモ:

MySQL データベースは UTF-8 エンコーディングを使用しています。同様に、コンテンツを表示する HTML ページは、メタ コンテンツ タイプを明示的に設定することにより、UTF-8 (Update:) を使用しています。

これらのページでは、スマート クォートと em ダッシュがクエスチョン マーク付きのひし形で表示されます。

解決:

返信ありがとうございます。解決策は次の 2 つでした。

  1. データベースと HTML ファイルが明示的に UTF-8 エンコーディングを使用するように設定されていることを確認してください。
  2. htmlspecialchars()の代わりに 使用しhtmlentities()ます。
0 投票する
2 に答える
2292 参照

ms-word - 'hello'をWordからtextareaにコピーして貼り付けると、保存後に018hello019になります

Wordに「hello」があり、貼り付けると018hello 019になるので、アポストロフィがこれらの奇妙な文字に変わります。

使用するワークステーションによって動作が異なるため、Webアプリケーションの種類は重要ではありません。

メモ帳、Excel、ワードパッドで確認しましたが、この問題は発生せず、Wordでのみ発生します。

Word/IE設定である必要があります。

どれか知っていますか?

ありがとう

0 投票する
12 に答える
23674 参照

c# - C# Microsoft のスマート クォートをストレート クォーテーション マークに置き換える方法は?

以下の私の投稿では、カーリー引用符とは何か、なぜ私のアプリはそれらで動作しないのかを尋ねました。私の質問は、私のプログラムがそれらに出くわしたときにどのようにそれらを置き換えることができるかです.C#でこれを行うにはどうすればよいですか? 彼らは特殊文字ですか?

カーリー引用符対正方形の引用符-何を与えるか

ありがとう

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

sql - スマートクォートを置き換えるSQL

MS OfficeのスマートクォートをASCIIのいとこに置き換えるSQLコマンドを知っている人はいますか?Oracleデータベースを使用しており、フィールドのタイプはvarchar2です。

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

encoding - 多くのコーディング Web サイトが標準の「標準」を「非標準」に変換したのはなぜですか?

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

css - コピーアンドペーストを「壊す」ことのないスマートな引用?

「スマートクォート」が嫌いな理由は1つあります。それを含むテキストをコピーすると、""入力した元のテキストがなくなり、代わりにUnicode記号になってしまいます。

スマートクォートは視覚的な改善であるため、実際にテキストに「焼き付け」るべきではないので、..疑問に思っていたのですが、CSSを使用してスマートクォートを表示することは可能ですか?

基本的に、テキストは次のように表示されます。

..ただし、ソースを表示するか、コピーして貼り付けると、次のように表示されます。

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

php - カーリー(スマート)引用符で窒息するMySQL

フォームからデータベースにデータを挿入しています。私はテキストをエスケープするために使用しています(同じ結果でaddslashes試しました)。mysql_real_escape_string

通常の引用符はエスケープされますが、他の引用符はエスケープされません。たとえば、文字列:

ホーマーの血は、モーの新しいビールの秘密の成分になります。

に変換されます:

ホーマーの血は、モーの新しいビールの秘密の成分になります。

中途半端な引用がエスケープされていないことが重要だとは思いませんでしたが、データベースに挿入されるのはこのテキストだけです。

ホーマーの血が萌えの秘伝となる

したがって、PHPは中引用符は問題ないと考えていますが、MySQLは文字列を失っています。ただし、MySQLはエラーを出していません。

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

c# - asp.net WebフォームのMSWordスマートクォートを置き換えます

ユーザーが MS Word で大量のテキストを作成し、それをオンライン フォームに貼り付けるという問題が発生しています。これらは、逆さまの ? として DB に入力されます。これらを標準の見積もりに置き換えるオプションは何ですか?

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

javascript - 「ストレートクォート」を「カーリークォート」に変換する

Javascriptベースのルールエンジンを使用するアプリケーションがあります。通常のストレートクォートをカーリー(またはスマート)クォートに変換する方法が必要です。string.replaceforを実行するのは簡単ですが["]、これだけが中引用符の1つのケースのみを挿入します。

私が考えることができる最善の方法は、引用符の最初の出現を左のカーリー引用符に置き換え、その後に続くすべての引用符を左に、残りを右のカーリーに置き換えることでした。

Javascriptを使用してこれを達成する方法はありますか?