У нас есть веб-приложение, в котором используется набор символов ISO-8859-1. У пользовательских пользователей есть «странные» имена, которые содержат символы, такие как Š (html закодированы здесь для вашего удобства). Мы сохраняем это в нашей базе данных, но мы не можем отобразить его правильно.HTML Кодирование символов не в наборе символов
Каков наилучший способ борьбы с этим? Я думаю, что я должен автоматически преобразовывать символы вне набора символов с его кодировкой номера HTML Entity (Š - Š
)
Но у меня возникают проблемы с поиском, как это сделать автоматически (без использования таблицы всех значений) ,
Этот код работает для расширенных символов ASCII, таких как 'å' (которые представлены в ISO-8859-1). Я хотел бы сделать то же самое с другими персонажами. Есть ли шаблон в этих значениях кодировки объектов HTML, которые я могу использовать?
unsigned int c;
for(int i=0; i < html.GetLength(); i++)
{
c = html[i];
if(c > 255 || c < 0)
{
CString orig = CString(html[i]);
CString encoded = "&#";
encoded += CTool::String((byte)c);
encoded += ";";
html.Replace(orig, encoded);
}
}
Да, это работает, но я считаю, что мы используем ISO-8859-1 по какой-то причине. Надеюсь, нет, хотя ... Я собираюсь проверить с людьми, которые должны знать. Это рискованная операция, изменяющая набор символов на всех наших серверах, хотя я бы хотел, чтобы это вместо того, чтобы кодировать однократное обходное решение. – Polymorphix 2010-12-15 16:08:03