【问题标题】:What characters can I send in an HTTP response body using NodeJS and Express?我可以使用 NodeJS 和 Express 在 HTTP 响应正文中发送哪些字符?
【发布时间】:2017-06-16 16:13:02
【问题描述】:

我有一个 node express 应用程序响应来自浏览器客户端的 ajax 帖子。我想知道在这个 http 响应正文中发送哪些无效字符。

我已将响应标头设置为使用 charset=utf-8。我的操作系统是带有 UTF-8 区域设置魅力的 Ubuntu。问题是,我们正在通过string.prototype.charCodeAt() 和string.prototype.fromCharCode() 对字符码进行动态和数学操作来构建我们的响应。我记得我以前弄乱 ASCII 的时候,很多字符都是控制字符。有些表示制表符,有些表示退格,这总是会破坏文本。

如果我使用 char 代码构造一个字符串,然后将其以 UTF-8 格式发送到客户端,如果有的话,哪些 char 代码发送到客户端是无效的?不幸的是,我来自窗户。我决定学习 Linux,这是一条艰难的道路,但我正在取得进步。谢谢。

【问题讨论】:

标签: javascript node.js express utf-8 character-encoding


【解决方案1】:

UTF-8 可以编码任何有效的 unicode 字符。 String.charCodeAt() 返回 UTF-16 编码的 unicode 字符值,String.fromCharCode 从 unicode 字符序列构造一个字符串,所以在任何时候你都应该有一个可以正确编码为 UTF-8 的有效 unicode 字符串。控制字符在字符串表示中不是问题,但如果您打印字符串,例如到控制台。

【讨论】:

  • 太棒了...所以当您尝试将内容打印到屏幕上时,控制字符只会破坏内容,对吧?因此,在从服务器到浏览器的管道中,它将在客户端的内存中准确接收。
  • @wayofthefuture 是的,因为控制字符仍然是有效的 Unicode 字符。它们通常用于控制终端中的事物 - 例如。打印新行或发出铃声(因此得名),因此将它们打印到控制台可以产生除了在屏幕上显示字符之外的效果。
猜你喜欢
  • 2014-02-20
  • 2017-12-21
  • 2020-02-08
  • 1970-01-01
  • 1970-01-01
  • 2020-02-18
  • 2011-06-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多