【问题标题】:PHP and Javascript: EURO sign taking more character length in php than javascriptPHP 和 Javascript:欧元符号在 php 中比 javascript 占用更多字符长度
【发布时间】:2012-05-31 22:19:40
【问题描述】:

我的消息文本为

可于 2012 年 5 月 16 日 6:45 至 2012 年 5 月 26 日在科隆订购? 支付 10 欧元/天

我认为欧元符号是恶棍

检查欧元符号时:

JavaScript 字符数= 86 PHP 字符数 = 88

在没有欧元符号的情况下检查

JavaScript 字符数 = 84 PHP 字符数 = 84

为什么会这样,谁能解释一下?

【问题讨论】:

  • 你能显示确切的代码吗?你在使用双引号吗?如果是这样,请尝试单引号。
  • 小心 utf8 编码 :) gist.github.com/2787184

标签: php javascript


【解决方案1】:

这很可能与您的内部编码有关,请参阅http://jsfiddle.net/e4phA/,它会正确警告字符串长度为 3 的字符串 '10€'。

【讨论】:

  • 我觉得js没有问题。计数问题在php中。
  • 如果€符号在JS的长度上加2,还是有错误。这只是一个字符。但由于它是 UTF-8 中的多字节符号,它似乎被转换为 ASCII 或其他东西来确定长度。
  • 我在控制台试了一下,长度是1。:) `var s = "€"; console.log(s.length);
【解决方案2】:

可于 2012 年 5 月 16 日 6:45 至 2012 年 5 月 26 日在科隆订购?支付 10 欧元/天

替换为€ 你会在php 和js 中得到相同的结果

【讨论】:

    【解决方案3】:

    尝试使用€

    另外,通过转义函数运行后尝试输出字符串。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-30
      相关资源
      最近更新 更多