Разрешение упрощенного китайского ввода - PullRequest
6 голосов
/ 23 марта 2012

Компания, в которой я работаю, делает ставку на проект, который потребует от нашей системы электронной коммерции принятия упрощенного китайского ввода.После небольшого исследования кажется, что ASP.net облегчает настройку глобализации:

<configuration>
  <system.web>
    <globalization
      fileEncoding="utf-8"
      requestEncoding="utf-8"
      responseEncoding="utf-8"
      culture="zh-Hans"
      uiCulture="en-us" />
  </system.web>
</configuration>

Вопросы:

  1. Это действительно все, что естьк этому в ASP.net?Кажется, это хорошо, чтобы быть правдой.
  2. Есть ли какие-либо соображения по поводу БД в SQL Server 2005?Примет ли БД упрощенный китайский без дополнительной настройки?

Ответы [ 2 ]

6 голосов
/ 25 марта 2012

Объявление 1. Реальный вопрос в том, как далеко вы хотите пойти с интернационализацией. Потому что i18n не только позволяет вводить Unicode. Вам необходимо, как минимум, поддерживать локальные форматы даты, времени и чисел, локальные параметры сортировки (в основном связанные с сортировкой) и обеспечивать правильную работу приложения в локализованных операционных системах (если только вы не разрабатываете решение Cloud aka hosted). Возможно, вы захотите прочитать больше по теме здесь .

Что касается поддержки ввода китайских символов, если вы собираетесь предлагать программное обеспечение в Китае, вам необходимо как минимум поддерживать GB18030-2000 . Для этого вам нужно использовать правильную версию .Net Framework - ту, которая поддерживает Unicode 3.0. Я считаю, что это было поддержано с .Net Framework 2.0.
Однако, если вы хотите пойти еще дальше (что может потребоваться для достижения конкурентного преимущества), вы можете поддержать GB18030-2005. Единственная проблема заключается в том, что полная поддержка этих символов (CJK Unified Ideographs Extension B) произошла позже (я не совсем уверен, что это Unicode 6.0 или Unicode 6.1) в процессе. Поэтому вы можете быть вынуждены использовать последнюю версию .Net Framework и все еще не уверены, что она охватывает все.
Возможно, вы захотите прочитать Часто задаваемые вопросы по Unicode для символов Han .

Объявление 2. Я настоятельно советую вам не использовать SQL Server 2005 с китайскими символами. Причина в том, что старый движок SQL Server поддерживает только UCS-2, а не UTF-16. Это может показаться небольшой разницей, но это действительно создает проблему с 4-байтовыми идеографами Хана. На самом деле, вы хотите иметь возможность использовать их в запросах (т.е. предложения LIKE или WHERE) - вы получите все записи. Вот как это работает. И для их поддержки вам нужно установить очень специфическую китайскую сортировку, которая просто нарушит поддержку других языков.
По сути, использование SQL Server 2005 с китайскими идеографами - это a плохо idea .

2 голосов
/ 30 марта 2012

Прежде всего, мне интересно, уверены ли вы, что выбрали правильный идентификатор культуры с zh-Hans, который является нейтральной культурой .Возможно, для вас было бы более уместным ориентироваться на конкретную культуру, например zh-CN (китайский используется в Китае), если вы хотите поддержать этот рынок.

Во-вторых, с помощью web.configФайл для установки культуры подойдет, если вы планируете развертывание, ориентированное исключительно на эту культуру.Часто вам нужно, чтобы одно и то же развертывание динамически адаптировалось к культуре конечного пользователя, и в этом случае вы бы программно установили Thread.CurrentCulture (и даже Thread.CurrentUICulture, если вы предоставляете локализованные ресурсы) на основе, например, схемы URL (например,www.myapp.com будет использовать en-US и www.myapp.com/china будет использовать zh-CN) или заголовок accept-languages ​​или селектор языка в приложении.

Кроме ограничений Unicode, которыеПавел ссылается на (что означает, что вам действительно может понадобиться использовать последнюю версию .NET Framework / SQL Server), нет ничего особенного, что вам нужно делать для упрощенного китайского - если вы следуете стандартным рекомендациям по интернационализации у вас должно быть все готово.Возможно, вам следует подумать о локализации (переводе) вашего приложения на китайский язык, как часть этого, кстати.

Что касается SQL Server, то точки Павла кажутся довольно ясными.Тем не менее, пока вы используете типы данных nvarchar (Unicode) и не запускаете запросы к этим столбцам и не сортируете их на основе этих столбцов на стороне БД, я буду удивлен, если у вас возникнут какие-либо проблемы с SQL Server 2005.Так что это действительно зависит от того, что вы будете делать с этими данными.

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