Корректная работа с русскими шрифтами в ПО ESRI
- Максим Дубинин
- MindingMyOwnBusiness
- Сообщения: 9129
- Зарегистрирован: 06 окт 2003, 20:20
- Репутация: 748
- Ваше звание: NextGIS
- Откуда: Москва
- Контактная информация:
Корректная работа с русскими шрифтами в ПО ESRI
пристегивайтесь, турбулентность прямо по курсу
-
- Новоприбывший
- Сообщения: 6
- Зарегистрирован: 15 авг 2007, 09:13
- Репутация: 0
- Откуда: Irkytsk
- Контактная информация:
-
- Новоприбывший
- Сообщения: 1
- Зарегистрирован: 21 ноя 2013, 12:28
- Репутация: 0
Re: Корректная работа с русскими шрифтами в ПО ESRI
Привет,
Можно попробовать следующее:
путь в реестре: HKEY_CURRENT_USER > Software > ESRI > Desktop xx.x > Common > CodePage
если конечные каталоги отсутствую, то их можно добавить, соответственно с такими же именами.
В конечном каталоге CodePage необходимо создать новую string value c именем dbfDefault и указать в ней значение 1251
Так же в настройках ОС (Windows) Region and Language, для Current language for non-Unicode programs должно быть значение Russia.
Можно попробовать следующее:
путь в реестре: HKEY_CURRENT_USER > Software > ESRI > Desktop xx.x > Common > CodePage
если конечные каталоги отсутствую, то их можно добавить, соответственно с такими же именами.
В конечном каталоге CodePage необходимо создать новую string value c именем dbfDefault и указать в ней значение 1251
Так же в настройках ОС (Windows) Region and Language, для Current language for non-Unicode programs должно быть значение Russia.
-
- Активный участник
- Сообщения: 133
- Зарегистрирован: 17 май 2011, 06:22
- Репутация: 50
- Откуда: Нижний Новгород
Re:
Есть... и дело даже не в ESRI а в том ПО которое создавала шейпы (а именно таблицу DBF) которые вы импортируете.da-ha86 писал(а):есть еще варианты.... эти не помогают все равно абра кадабра...
Проблема в том, что многие разработчики забывают указать кодовую страницу в структуре DBF, а ESRI, при отсутствии онного параметра, использует дефолтное значение для системы.
Поправить данную ситуацию довольно таки просто (если вы знаете кодовую таблицу):
1. Поправить ваш DBF в любом HEX редакторе - в позиции 0x1D прописать идентификатор кодовой страницы
Спойлер
int hex codepage name
1 0x01 437 US MS-DOS
2 0x02 850 International MS-DOS
3 0x03 1252 Windows ANSI Latin I
4 0x04 10000 Standard Macintosh
8 0x08 865 Danish OEM
9 0x09 437 Dutch OEM
10 0x0A 850 Dutch OEM*
11 0x0B 437 Finnish OEM
13 0x0D 437 French OEM
14 0x0E 850 French OEM*
15 0x0F 437 German OEM
16 0x10 850 German OEM*
17 0x11 437 Italian OEM
18 0x12 850 Italian OEM*
19 0x13 932 Japanese Shift-JIS
20 0x14 850 Spanish OEM*
21 0x15 437 Swedish OEM
22 0x16 850 Swedish OEM*
23 0x17 865 Norwegian OEM
24 0x18 437 Spanish OEM
25 0x19 437 English OEM (Great Britain)
26 0x1A 850 English OEM (Great Britain)*
27 0x1B 437 English OEM (US)
28 0x1C 863 French OEM (Canada)
29 0x1D 850 French OEM*
31 0x1F 852 Czech OEM
34 0x22 852 Hungarian OEM
35 0x23 852 Polish OEM
36 0x24 860 Portuguese OEM
37 0x25 850 Portuguese OEM*
38 0x26 866 Russian OEM
55 0x37 850 English OEM (US)*
64 0x40 852 Romanian OEM
77 0x4D 936 Chinese GBK (PRC)
78 0x4E 949 Korean (ANSI/OEM)
79 0x4F 950 Chinese Big5 (Taiwan)
80 0x50 874 Thai (ANSI/OEM)
87 0x57 Current ANSI CP ANSI
88 0x58 1252 Western European ANSI
89 0x59 1252 Spanish ANSI
100 0x64 852 Eastern European MS-DOS
101 0x65 866 Russian MS-DOS
102 0x66 865 Nordic MS-DOS
103 0x67 861 Icelandic MS-DOS
104 0x68 895 Kamenicky (Czech) MS-DOS
105 0x69 620 Mazovia (Polish) MS-DOS
106 0x6A 737 Greek MS-DOS (437G)
107 0x6B 857 Turkish MS-DOS
108 0x6C 863 French-Canadian MS-DOS
120 0x78 950 Taiwan Big 5
121 0x79 949 Hangul (Wansung)
122 0x7A 936 PRC GBK
123 0x7B 932 Japanese Shift-JIS
124 0x7C 874 Thai Windows/MS–DOS
134 0x86 737 Greek OEM
135 0x87 852 Slovenian OEM
136 0x88 857 Turkish OEM
150 0x96 10007 Russian Macintosh
151 0x97 10029 Eastern European Macintosh
152 0x98 10006 Greek Macintosh
200 0xC8 1250 Eastern European Windows
201 0xC9 1251 Russian Windows
202 0xCA 1254 Turkish Windows
203 0xCB 1253 Greek Windows
204 0xCC 1257 Baltic Windows
1 0x01 437 US MS-DOS
2 0x02 850 International MS-DOS
3 0x03 1252 Windows ANSI Latin I
4 0x04 10000 Standard Macintosh
8 0x08 865 Danish OEM
9 0x09 437 Dutch OEM
10 0x0A 850 Dutch OEM*
11 0x0B 437 Finnish OEM
13 0x0D 437 French OEM
14 0x0E 850 French OEM*
15 0x0F 437 German OEM
16 0x10 850 German OEM*
17 0x11 437 Italian OEM
18 0x12 850 Italian OEM*
19 0x13 932 Japanese Shift-JIS
20 0x14 850 Spanish OEM*
21 0x15 437 Swedish OEM
22 0x16 850 Swedish OEM*
23 0x17 865 Norwegian OEM
24 0x18 437 Spanish OEM
25 0x19 437 English OEM (Great Britain)
26 0x1A 850 English OEM (Great Britain)*
27 0x1B 437 English OEM (US)
28 0x1C 863 French OEM (Canada)
29 0x1D 850 French OEM*
31 0x1F 852 Czech OEM
34 0x22 852 Hungarian OEM
35 0x23 852 Polish OEM
36 0x24 860 Portuguese OEM
37 0x25 850 Portuguese OEM*
38 0x26 866 Russian OEM
55 0x37 850 English OEM (US)*
64 0x40 852 Romanian OEM
77 0x4D 936 Chinese GBK (PRC)
78 0x4E 949 Korean (ANSI/OEM)
79 0x4F 950 Chinese Big5 (Taiwan)
80 0x50 874 Thai (ANSI/OEM)
87 0x57 Current ANSI CP ANSI
88 0x58 1252 Western European ANSI
89 0x59 1252 Spanish ANSI
100 0x64 852 Eastern European MS-DOS
101 0x65 866 Russian MS-DOS
102 0x66 865 Nordic MS-DOS
103 0x67 861 Icelandic MS-DOS
104 0x68 895 Kamenicky (Czech) MS-DOS
105 0x69 620 Mazovia (Polish) MS-DOS
106 0x6A 737 Greek MS-DOS (437G)
107 0x6B 857 Turkish MS-DOS
108 0x6C 863 French-Canadian MS-DOS
120 0x78 950 Taiwan Big 5
121 0x79 949 Hangul (Wansung)
122 0x7A 936 PRC GBK
123 0x7B 932 Japanese Shift-JIS
124 0x7C 874 Thai Windows/MS–DOS
134 0x86 737 Greek OEM
135 0x87 852 Slovenian OEM
136 0x88 857 Turkish OEM
150 0x96 10007 Russian Macintosh
151 0x97 10029 Eastern European Macintosh
152 0x98 10006 Greek Macintosh
200 0xC8 1250 Eastern European Windows
201 0xC9 1251 Russian Windows
202 0xCA 1254 Turkish Windows
203 0xCB 1253 Greek Windows
204 0xCC 1257 Baltic Windows
Хочу внести некоторую ясность для данного метода - вы не изменяете все данные, а просто указываете в DBF кодовую страницу, которую нужно использовать.
- vasnake
- Интересующийся
- Сообщения: 22
- Зарегистрирован: 23 май 2013, 16:42
- Репутация: 6
- Откуда: Москва
- Контактная информация:
Re: Re:
еще помогает, если добавить *.CPG файлMonstria писал(а):Есть... и дело даже не в ESRI а в том ПО которое создавала шейпы (а именно таблицу DBF) которые вы импортируете.da-ha86 писал(а):есть еще варианты.... эти не помогают все равно абра кадабра...
Проблема в том, что многие разработчики забывают указать кодовую страницу в структуре DBF, а ESRI, при отсутствии онного параметра, использует дефолтное значение для системы.
...
Код: Выделить всё
Set the code page in the <shapefile>.cpg file. This .cpg file would only contain the required code page number, e.g. 1251 (for Russian Windows).
http://support.esri.com/cn/knowledgebas ... tail/21106
It ain't easy. It just proves how great I am.
-
- Активный участник
- Сообщения: 133
- Зарегистрирован: 17 май 2011, 06:22
- Репутация: 50
- Откуда: Нижний Новгород
Re: Re:
Возможно... Только я в свое время так и не нашел информации о формате записи данного файла, ровно как и инструмента создания оного в арке (Desktop) - поэтому и пошел путем решения правки файла DBF.vasnake писал(а):еще помогает, если добавить *.CPG файл
Если вам известно более полное описание формата данного файла и методика его создания в арке - ткните пожалуйста носом (поделитесь ссылкой) буду премного благодарен!
PS... Решение с регистром исключаем как таковое - интересен лишь файлик CPG
-
- Гуру
- Сообщения: 5328
- Зарегистрирован: 09 апр 2010, 19:30
- Репутация: 1018
- Ваше звание: просто мимо прохожу
- Откуда: Ё-бург
Re: Корректная работа с русскими шрифтами в ПО ESRI
Просто создайте текстовый файл и пропишите это расширение
-
- Гуру
- Сообщения: 3321
- Зарегистрирован: 27 июл 2009, 19:26
- Репутация: 748
- Ваше звание: Вредитель полей
Re: Корректная работа с русскими шрифтами в ПО ESRI
Угу, а шаманство с заменой NLS-файлов - это лечение одного глюка добавлением другого.
- vasnake
- Интересующийся
- Сообщения: 22
- Зарегистрирован: 23 май 2013, 16:42
- Репутация: 6
- Откуда: Москва
- Контактная информация:
Re: Re:
тут http://webhelp.esri.com/arcpad/8.0/refe ... k_code.htm написано:Monstria писал(а):Если вам известно более полное описание формата данного файла и методика его создания в арке - ткните пожалуйста носом (поделитесь ссылкой) буду премного благодарен!vasnake писал(а):еще помогает, если добавить *.CPG файл
что означает: допустим, у вас есть шейп с именем foobar, тогда рядом с файлом foobar.dbf создайте файл foobar.cpg и запишите в него строку (да хоть Блокнотом) с номером кодовой страницы. Для "Russian Windows" это будет "1251" а для "Russian DOS" это будет "866". Без кавычек, конечно. Номера других кодовых страниц есть там же.Set the code page in the <shapefile>.cpg file. This .cpg file would only contain the required code page number, e.g. 1251 (for Russian Windows).
Вот тут http://support.esri.com/cn/knowledgebas ... tail/21106 достаточно подробно расписано поведение продукции Esri при встрече с шейпами и разными кодовыми страницами.
Ну и тут http://en.wikipedia.org/wiki/Shapefile информации навалом, не говоря уже о https://www.google.ru/search?q=shape+dbf+cpg
От себя лично добавлю - правильная строка в CPG файле реально помогает, и не только при работе с продукцией Esri.
It ain't easy. It just proves how great I am.
-
- Активный участник
- Сообщения: 133
- Зарегистрирован: 17 май 2011, 06:22
- Репутация: 50
- Откуда: Нижний Новгород
Re: Корректная работа с русскими шрифтами в ПО ESRI
trir писал(а):Просто создайте текстовый файл и пропишите это расширение
Спасибо!!! Реально работает... Но только с набором шейпов - отдельно к таблице DBF подобное прикрутить не получается.vasnake писал(а):что означает: допустим, у вас есть шейп с именем foobar, тогда рядом с файлом foobar.dbf создайте файл foobar.cpg и запишите в него строку (да хоть Блокнотом) с номером кодовой страницы. Для "Russian Windows" это будет "1251" а для "Russian DOS" это будет "866". Без кавычек, конечно. Номера других кодовых страниц есть там же.
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя