2012-05-25 2 views
0

Я получил текст сообщения какPHP и Javascript: EURO знак принимая больше длины символа в PHP, чем JavaScript

Доступно для заказа в Кёльне от 05/16/2012 6:45 до 05/26/2012? оплата 10 € За день

Я думаю, что символ Евро злодей

При проверке со знаком Евро:

JavaScript кол-символ = 86 PHP счетчик голец = 88

При проверке без знака Евро

JavaScript char count = 84 PHP char count = 84

Почему это происходит, кто-нибудь может объяснить?

+0

Можете ли вы показать точный код? Вы используете двойные кавычки? Если да, попробуйте одинарные кавычки. – Francisc

+1

Остерегайтесь кодировки utf8 :) https://gist.github.com/2787184 –

ответ

0

Попробуйте использовать €.

Также попробуйте вывести строку после запуска ее через функцию экранирования.

0

Доступно для заказа в Кельне от 05/16/2012 6:45 до 05/26/2012? оплата 10 € За день

заменить с € вы получите тот же результат как в PHP и JS

0

Он имеет наиболее вероятно, что-то делать с вашим внутренним кодированием, см http://jsfiddle.net/e4phA/, где он предупреждает длину строки правильно, так как 3 для строки '10 € '.

+0

Я думаю, что нет проблем в js. Задача счетчика находится в php. – Bob

+0

Если знак € добавляет 2 к длине в JS, все еще есть некоторая ошибка. Это всего лишь один персонаж. Но поскольку это многобайтовый символ в UTF-8, он, похоже, преобразован в ASCII или что-то для определения длины. – Paul

+0

Я попробовал его в консоли, и длина равна 1. :) 'var s =" € "; console.log (s.length); – Bob