В чем разница между этими двумя строками? - PullRequest
1 голос
/ 25 апреля 2009

Использование nUnit для проверки вывода (форматирование валюты) для конкретной культуры, но мы получаем следующий результат.

  Fail: Formatting currency amount
  String lengths are both 11. Strings differ at index 2.
  Expected: "12 765,87 €"
  But was:  "12 765,87 €"
  -------------^

Мы не видим разницы между строками. Наш ожидаемый результат использует символ «Пробел».

Есть ли другой пробел, который мы можем вставить в принятый результат, чтобы пройти тест?

Кстати, тестируемая культура - франц.

Редактировать: Спасибо, Адам, ты идешь с юникодом. Мы изменили наши ожидаемые результаты, и теперь каждый модульный тест проходит.

Ответы [ 2 ]

5 голосов
/ 25 апреля 2009

Возможно, это разные типы пространств. Unicode имеет много различных пробелов . Взгляните на кодовые точки индекса 2, приведя символы к целым числам, чтобы получить ответ.

Редактировать

В ответ на ваш комментарий кодовая точка 160 представляет собой неразрывный пробел . Вы можете ввести его напрямую в исходный код (например, Alt + 0160 на цифровой клавиатуре в Windows) или использовать escape-последовательность:

// U+20AC is the Unicode code point for the euro sign
string expected = "12\u00A0765,87 \u20AC";
1 голос
/ 25 апреля 2009

Скорее всего, это символ пробела, но не пробел, чтобы избежать меток и такой, чтобы разбить число на два, когда включена перенос слов.

...