Perl中的chr()函数和JavaScript中的String.fromCharCode()函数

chr() function in Perl and String.fromCharCode() function in JavaScript

本文关键字:函数 中的 String fromCharCode JavaScript Perl chr      更新时间:2023-09-26

在Perl中,我使用chr()函数。如果我的值大于0,我将值加256并使用chr()函数。E, g。对于-97的值,我添加256,并执行chr(159),我得到Ÿ字符。

现在我必须在JavaScript中使用相同的

我得到-97,如果我添加256到它并执行String.fromCharCode(159),我得到一个空白字符,而不是,如果我执行String.fromCharCode(376),我得到Ÿ字符,这与Perl相同。

有什么区别,为什么有区别?我应该在JavaScript中使用什么?

在JavaScript中,对于正数和加256后小于256的数,Perl和JavaScript的输出是相同的

String.fromCharCode以Unicode代码点作为参数。U+178(十进制376)等于Ÿ。

Perl的chr使用您的程序运行的字符集

您的Perl在cp1252环境中运行,而JavaScript在UTF-8环境中运行。对我来说,我从

得到Ÿ
perl -e 'print chr 376'

有关编码和JavaScript的讨论,请参阅https://mathiasbynens.be/notes/javascript-encoding。