【问题标题】:chr() function in Perl and String.fromCharCode() function in JavaScriptPerl 中的 chr() 函数和 JavaScript 中的 String.fromCharCode() 函数
【发布时间】:2016-11-02 07:20:26
【问题描述】:

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

现在我必须在 JavaScript 中使用它。

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

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

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

【问题讨论】:

    标签: javascript perl unicode utf-8


    【解决方案1】:

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

    得到 Ÿ
    perl -e 'print chr 376'
    

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

    【讨论】:

    • 感谢您的回复。有没有一种解决方法,我可以使用 HTML 中的元标记将字符集更改为 CP1252。如果是,我应该使用的字符集到底是什么?
    • @user3710967:我会尝试 cp1252。
    【解决方案2】:

    String.fromCharCode 将 Unicode 代码点作为其参数。 U+178(十进制376)是Ÿ。

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

    【讨论】:

    • 感谢您的回复。 PERL 代码已经存在,我必须编写一个 JAVASCRIPT / NODE.JS 等效代码。请看看您是否可以建议我如何做到这一点。
    猜你喜欢
    • 2021-11-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-28
    相关资源
    最近更新 更多