2009-08-13 1 views
1

В настоящее время разрабатывается мое веб-приложение asp.net, и я хочу обрабатывать любые введенные пользователем слова. Затем этот ввод будет отображаться другим пользователям на сайте.Подготовьтесь к возможности нескольких языков. Я пропустил трюк?

До сих пор я сделал следующее:

  1. Поместите это в голову - META HTTP-эквив = "Content-Type" содержание = "текст/html; кодировка = UTF-8"

  2. Сохраненные входы в полях NVARCHAR

нужно ли мне делать что-нибудь еще? Нужны ли мне какие-либо другие метатеги (контент-язык и т. Д.)?

ответ

1

Также подумайте о возможности локализовать свой пользовательский интерфейс либо через ресурсы, либо с соответствующей поддержкой в ​​вашей базе данных. Если пользователи будут генерировать неанглийский контент, они определенно оценят интерфейс пользователя на своем родном языке.

+0

Хорошая точка. Это следующий этап, когда эта проблема будет завершена. – 2009-08-13 08:38:01

0
  • Всякий раз, когда вы используете String.Format, добавьте спецификацию клиента. Использование FxCop позволяет исследовать эти места.
  • Исключить строковые константы из кода .cs
  • Поместите изображения (которые могут содержать текст, специфичный для культуры) в файлы скинов или ресурсы.
1

Следует помнить, что не следует делать допущения, которые в действительности недействительны.

Довольно распространенное предположение, что неверно то, что (str.ToUpper().ToLower() == str) для любых string str. Более тонкое предположение состоит в том, что понятие «верхнего» и «нижнего» случая даже имеет смысл для любого данного языка.

Еще одно частое проблемное предположение состоит в том, что во входном файле всегда присутствует нулевой символ . Это неправильно - даже если установить такие вещи, как суррогатные пары в стороне, есть также сочетание символов. Вы либо должны нормализовать свои строки (и даже это не на 100% безупречно), либо просто не иметь дело с отдельными char с.

Если вы хотите иметь дело с более чем простым текстовым вводом, отображаемым дословно - то есть полной, правильной локализацией - вам также нужно правильно обрабатывать форматы чисел, даты, валюты и т. Д .; и, например, не предполагайте, что десятичный разделитель является точкой.

Мой лучший общий совет - просто пойти и прочитать Michael Kaplan's blog, местный гуру Microsoft по локализации и связанным с этим вопросам. Ищите категории (теги), такие как «Collation/Casing», «Encoding/Codepages» и «Int'l Programming». Там есть лот вещей, и большинство из них либо напрямую связано с вашим вопросом, либо интересно, или и то, и другое.Если после прочтения нескольких своих сообщений в блоге вы начинаете думать, что, возможно, найм специалиста по локализации, чтобы указать на потенциальные неочевидные проблемы в этой области, это хорошая идея, тогда вы, вероятно, правы :)

0

браузеры определяют кодировку в следующем порядке:

  1. Content-Type заголовка HTTP (пример значения: "текст/html; кодировка = UTF-8")
  2. XML декларация
  3. мета атрибут

Вы должны убедиться, что веб-сервер не отправляет конфликтующие данные типа содержимого в заголовках.

Убедитесь, что вы сохраняете файлы в UTF-8.

Смежные вопросы