2017-06-16 20 views
-1

私はブラウザのクライアント側からajax投稿に応答するノードエクスプレスアプリを持っています。私は、このHTTPレスポンス本文で何が無効な文字で送信されるのだろうかと思っています。NodeJSとExpressを使用してHTTP応答本体で送信できる文字は何ですか?

私はcharset = utf-8を使用するように応答ヘッダーを設定しました。私のオペレーティングシステムは、UTF-8のロケールcharmapを持つUbuntuです。問題は、string.prototype.charCodeAt()とstring.prototype.fromCharCode()によって、チャードの動的で数学的な操作を使ってレスポンスを構築することです。私はASCIIで混乱していたときには、多くの文字が制御文字だったことを思い出します。タブを意味するものもあれば、テキストをマングルするバックスペースを意味するものもあります。

文字コードを使用して文字列を作成し、その文字コードをクライアントに送信するのに無効なcharコードをUTF-8としてクライアントに送信しますか?残念ながら、私は窓から来ています。私はLinuxを学ぶことにしましたが、それは難しい道ですが、進歩しています。ありがとう。

+0

UTF-8エンコーディングの意味を調べましたか?スペックやそれを記述している他の記事では、すべてがスペルアウトされています。 – jfriend00

+0

私は何度もそれを読んでいますLOL – wayofthefuture

+0

そして、あなたはそれを理解できませんでしたか?それはすべてそこに綴られている。 – jfriend00

答えて

1

UTF-8は任意の有効なユニコード文字をエンコードできます。 String.charCodeAt()はUTF-16でエンコードされたユニコード文字の値を返します。String.fromCharCodeはユニコード文字のシーケンスから文字列を構成します。したがって、常にUTF-8に正しくエンコードできる有効なユニコード文字列が必要です。制御文字は文字列表現の問題ではありませんが、たとえば文字列を印刷すると問題になる可能性があります。コンソールに。

+0

偉大な...コントロール文字は、画面に印刷しようとするとコンテンツをマングルするだけですか?サーバーからサーバーへのパイプでは、クライアント上のメモリに正確に受信されます。 – wayofthefuture

+1

@wayofthefutureはい、制御文字が有効なユニコード文字であるためです。それらは従来、端末内の物を制御するために使用されています。画面に文字を表示する以外に、新しい行を印刷したり、ベル音(名前など)をコンソールに出力したりすることができます。 –

関連する問題