Delphi 2006 перевод с / на французский / голландский / немецкий с одной кодовой страницей ANSI - PullRequest
0 голосов
/ 30 ноября 2011

Мне нужно сделать несколько переводов с / на французский / голландский / немецкий языки, используя Delphi 2006 (без каких-либо сторонних модулей / компонентов).

Эти 3 языка имеют кодовую страницу 1252 . Наша база данных соответствует UTF-8, поэтому в данный момент я полагаюсь на тот факт, что все значения из таблиц соответствуют UTF-8. Должен ли я быть уверен в этом предположении? Это будет хорошо работать, или я должен беспокоиться о различиях UTF-8 -> кодовой страницы 1252, если таковые имеются? Я не понимал разницы между UTF-8 и кодовыми страницами (например, я понял, что первые 127 байтов одинаковы, а начальные значения со 128 байтом разные).

Во-вторых, мне нужно сделать поиск по некоторым полям. Могу ли я полагаться на функцию ANSIUpperCase с D2006? Или я должен сделать пользовательскую функцию для обработки каждого специального символа?

LE: данные хранятся в формате UTF-8.

Заранее спасибо!

1 Ответ

5 голосов
/ 30 ноября 2011
  1. База данных, совместимая с UTF8, не означает, что данные фактически хранятся в UTF8. Например. в Firebird (который соответствует UTF8) вы можете объявлять таблицы, используя наборы символов ANSI.
  2. Вам нужно будет конвертировать из UTF8 в ANSI 1252 и наоборот. Например. с подпрограммами UTF8Encode и UTF8Decode.
...