javascript - 为什么某些字符出现在 JS console.log 中的 'broken'?

标签 javascript node.js vim unicode ascii

我正在用 javascript 下载一个文件,它包含一些特殊字符,例如,如果我在 vim 或更低版本中打开它,我会看到一行包含 caf<E9> , 其中<E9>是一个特殊字符的十六进制值。

如果您查找 E9 的十六进制值,它是 é , 所以整行是 café , 但如果我做 console.log在那条线上,我没有得到 café但我得到 caf� .为什么会这样?

如何替换那个奇怪的值 é ?这些似乎都不起作用。

line.replace(/\x92/g, '')
line.replace('\x92', '')

该文件包含以相同方式出现的不同十六进制字符(特殊的单引号和双引号)。为什么它们首先会出现这样,我该如何解决它们?

一些可能有帮助的附加信息:当我在 vim 中打开文件时,它显示 [converted]在底部。显然这意味着它将它从 fileencoding 的值转换而来。 vim 属性(即 latin1 )到 encoding 的值vim 属性(即 utf-8 )。

最佳答案

console.log(String.fromCharCode(parseInt(0xe9,10)))

使用parseInt转换为十进制,然后得到字符编码。要将字符转换回:

parseInt((é).charCodeAt(0), 16) <==== doesn't work check out the link below

MDN 有一种扩展 charCodeAt 以涵盖多语言字符的方法。使用代码和示例查看此链接:

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/charCodeAt

关于javascript - 为什么某些字符出现在 JS console.log 中的 'broken'?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41815533/

相关文章:

javascript - 从 RequireJS 中的 CommonJS 样式模块导出构造函数

javascript - Chrome 中的字符串比较改变了中间功能

node.js - 在Docker容器中访问Angular应用程序

javascript - 从 Typescript 中的模块导出所有定义的速记

vim - 无法为 Dvorak 键盘映射配置 VIM

php - 第一次 ajax 调用不起作用

javascript - react 选择可创建的 "no options"而不是 "create"

node.js - 使用 Node.js 将 HTML 转为 PDF

linux - 在 Vim 中访问 Bash 脚本的返回值

vim - Ctrl-o 忽略 "No write since last change"