您的位置:首页 > Web前端 > JavaScript

javascript中的string与其他语言string的一些不同

2016-05-12 09:43 295 查看
作者:贺师俊

链接:https://www.zhihu.com/question/26121387/answer/32188941

来源:知乎

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

var biz_content = "欢迎关注!";
var gbkBytes = iconv.encode(biz_content,'gbk');

res.setHeader('Content-Type', 'text/html; charset=gbk')
res.end(gbkBytes)


注意确保你的源代码文件是utf-8正确编码。

JavaScript的字符串本来就是unicode的,只要encode就好了。你上面写的代码是得到了字符串的utf-8字节后按照gbk解码,得到的必然是乱码字符串。

补充:

许多同学对字符串理解有误。PHP的字符串不是真正的“字符”串,而是“字节”串。在nodejs里(以及在java、C#等现代语言中),字符串是真的unicode字符串。(内部以utf-16编码保存,虽然严格意义上其实也存在代理对这样的问题,但是绝大多数情况下我们只用基本平面内的字符,所以算是比较好的性能和功能的折中。)

因此JavaScript中不存在gbk字符串或utf8字符串这样的东西(可以认为只有utf-16的字符串)。你可以认为php中的所谓字符串等价于nodejs的 Buffer,尽管使用上有一些不同。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  javascript