Конвертировать Unicode в UTF8 - PullRequest
       7

Конвертировать Unicode в UTF8

1 голос
/ 14 апреля 2011

Я пытаюсь объединить две разные сторонние службы в javascript и получаю строки в определенном наборе символов, которые мне нужно преобразовать в другой набор символов в Javascript.

Например, строка test.

Мне дана закодированная строка, например: te% u0301st.Акцент кодируется как% u0301.Мне нужно как-то преобразовать это в эту строку: t% C3% A9st, где é кодируется как% C3% A9.Как я могу конвертировать e% u0301 в% C3% A9 в javascript?

Спасибо

Ответы [ 2 ]

2 голосов
/ 14 апреля 2011

Вы, похоже, пытаетесь нормализовать ввод, возможно, в Unicode Normal Form C. Я не знаю ни одного простого способа сделать это в Javascript;вам может понадобиться реализовать алгоритм нормализации самостоятельно или найти библиотеку, которая делает это.

отредактировано, чтобы удалить ответ на неправильный вопрос

0 голосов
/ 20 июля 2012

Если все, что вам нужно, это любая кодировка Unicode с экранированием URL-адреса, это поможет:

function convert(s) {
  function parse(a, c) {
    return String.fromCharCode(parseInt(c, 16));
  }
  return encodeURIComponent(s.replace(/%u([0-f]{4})/gi, parse));
}

convert('te%u0301st'); // => te%CC%81st

Если вам конкретно нужна обычная форма C, вам нужно реализовать целуюмного интеллекта Unicode самостоятельно, так как 'te\u0301st'.length (или 'tést'.length) равен 5 в javascript.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...