и снова Крякозябры - Страница 11
| Правила | Регистрация | Пользователи | Сообщения за день |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > и снова Крякозябры

и снова Крякозябры

Ответ
Поиск в этой теме
Непрочитано 31.08.2008, 17:11
и снова Крякозябры
const
 
проектирование
 
Москва, ВДНХ
Регистрация: 09.11.2006
Сообщений: 11

Добрый день. Проблема с мтекстом. На работе работал с файлом, добавил текстовое оформление. Работал в 2008 Ен. Открыл дома - на месте некоторых слов - кракозябры. Более того, встречается такая надпись " Ïëàí первого ýòàæà
ñ ñèñòåìîé отопления"
изменения character set эффекта не дала.
Поглядев на этот текст внимательнее заметил вот что
"Command: (entget(car(entsel)))

Select object: ((-1 . <Entity name: 7ed24a00>) (0 . "MTEXT") (5 . "12B698")
(102 . "{ACAD_XDICTIONARY") (360 . <Entity name: 7ed24a08>) (102 . "}") (330 .
<Entity name: 7ef9ec10>) (100 . "AcDbEntity") (67 . 0) (410 . "Model") (8 .
"РАмка") (370 . 9) (100 . "AcDbMText") (10 404586.0 -64450.1 0.0) (40 . 400.0)
(41 . 5190.0) (46 . 0.0) (71 . 5) (72 . 5) (1 . "Èíä{\\fTimes New
Roman|b0|i0|c204|p18;и}âèäóàëüíûé æèëîé äî\U+00EC") (7 . "ARCH") (210 0.0 0.0
1.0) (11 1.0 0.0 0.0) (42 . 5189.33) (43 . 1191.25) (50 . 0.0) (73 . 1) (44 .
1.0))
" НЕ понял откуда в обычном тексте ACAD_XDICTIONARY, и почему добавляются юникодовские знаки? И что сделать чтобы подобных проблем не возникало? Стиль текста был на основе нью романа.
Просмотров: 191695
 
Непрочитано 13.05.2009, 14:57
#201
A_S


 
Регистрация: 13.05.2009
Сообщений: 3


Цитата:
Сообщение от nik_mb Посмотреть сообщение
Судя по количеству повторяющихся символов кодировка, возможно, какая нибудь 16 или 32 битная (хотя врядли - слишком мало символов в слове). Нелегкий случай. Сдается мне, что кодировка сербская или македонская (они могут писать киррилицей).
Ты скорее всего прав. Заказчик - архитектор из Сербии. Можно ли где-нибудь скачать эту сербскую кодировку?
A_S вне форума  
 
Непрочитано 13.05.2009, 15:07
#202
nik_mb

конструктор
 
Регистрация: 23.03.2009
Волгоград
Сообщений: 120


Цитата:
Сообщение от Profan Посмотреть сообщение
А названия слоев видели?
Но названия слоев в другой кодировке и легко конвертируется. Например один слой "ьхЄрышў. яЁюЇшыш" - "металич. профили"
nik_mb вне форума  
 
Непрочитано 13.05.2009, 15:22
#203
sagava

Архитектор.
 
Регистрация: 12.01.2006
Москва
Сообщений: 821


Через региональные и языковые настройки, найти все требуемые кодировки и поставить галочки, но нужен диск Windows.
Миниатюры
Нажмите на изображение для увеличения
Название: Rlo.png
Просмотров: 159
Размер:	10.9 Кб
ID:	20302  
sagava вне форума  
 
Непрочитано 14.05.2009, 10:29
#204
A_S


 
Регистрация: 13.05.2009
Сообщений: 3


Цитата:
Сообщение от sagava Посмотреть сообщение
Через региональные и языковые настройки, найти все требуемые кодировки и поставить галочки, но нужен диск Windows.
Добавила языки, но чертеж открывается в том же виде.
A_S вне форума  
 
Непрочитано 14.05.2009, 11:10
#205
Александр Ривилис

программист, рыцарь ObjectARX
 
Регистрация: 09.05.2005
Киев
Сообщений: 2,413
Отправить сообщение для Александр Ривилис с помощью Skype™


Похоже чертеж был уже испорчен после того, как его тебе передали. Еще нужно знать какая у него была установлена кодовая страница.
Александр Ривилис вне форума  
 
Непрочитано 14.05.2009, 11:15
#206
nik_mb

конструктор
 
Регистрация: 23.03.2009
Волгоград
Сообщений: 120


Думаю, что помочь вам очень не просто. Так например есть кодировка YUSCII — неофициальное название для 7-битной кодировки JUS I.B1.002, использовавшейся в Югославии. Она представляет собой национальный вариант стандарта ISO 646.
Короче, нужен фонт (Arial) с компутера на котором было выполнено это задание.
nik_mb вне форума  
 
Непрочитано 21.05.2009, 12:53
#207
vkolt

инженеришко
 
Регистрация: 18.08.2008
Ростов-на-Дону
Сообщений: 261
<phrase 1=


Есть автокадовский фаил со спецификацией ОВ. На первой странице в части надмисей есть ероглифы, в части всё нормально. Шрифт использован стандартный, DWGconvert результата не дал. Может кто поможет, ато руки опускаются.
Вложения
Тип файла: dwg
DWG 2004
спецификация-2.dwg (298.4 Кб, 1662 просмотров)
vkolt вне форума  
 
Непрочитано 21.05.2009, 14:26 Г-н
#208
Александр Ривилис

программист, рыцарь ObjectARX
 
Регистрация: 09.05.2005
Киев
Сообщений: 2,413
Отправить сообщение для Александр Ривилис с помощью Skype™


Цитата:
Сообщение от vkolt Посмотреть сообщение
Есть автокадовский фаил со спецификацией ОВ. На первой странице в части надмисей есть ероглифы, в части всё нормально. Шрифт использован стандартный, DWGconvert результата не дал. Может кто поможет, ато руки опускаются.
DWGConvertStr помогает. Направление перекодировки Unicode Latin1->Windows Впрочем, там в одном тексте и нормальный и абракадабра, так что нужно немного поработать головой.

Последний раз редактировалось Александр Ривилис, 21.05.2009 в 14:31.
Александр Ривилис вне форума  
 
Непрочитано 21.05.2009, 15:04
#209
vkolt

инженеришко
 
Регистрация: 18.08.2008
Ростов-на-Дону
Сообщений: 261
<phrase 1=


Странно, у меня не помогает. Одни иероглифы на другие меняет.
vkolt вне форума  
 
Непрочитано 03.06.2009, 15:25
#210
Servini


 
Регистрация: 03.06.2009
Сообщений: 6


Добрый день.

Есть dxf-файл, созданный нашими партнерами в Японии. Нам его прислали по почте. На одном компьютере с 2005-м автокадом этот файл открывается, английский текст читается, при этом когда пытаешься редактировать текст, содержимое отображается в виде крякозябров, но после завершения редактирования текст отображается нормально везде, кроме поля Contents в свойствах текста. Скриншот во вложении - файл 2005.jpg. При изменении файла шрифта в стилях текста на этом компьютере, шрифт меняется, английский текст читается. При снятии галочки "Использовать большой шрифт" - текст превращается в крякозябры.

На другом компьютере, где установлен автокад 2007 русская версия, этот файл сразу открывается с крякозябрами, и ни один из предложенных способов, включая DWGConvert, не помогает. Скриншот во вложении, файл 2007rus.jpg.

Сам проблемный файл со шрифтами с того компьютера, где текст читается, тоже во вложении.

Подскажите, как можно прочитать текст на компьютере с автокадом 2007?
Вложения
Тип файла: rar 123.rar (480.3 Кб, 78 просмотров)
Servini вне форума  
 
Непрочитано 03.06.2009, 16:04
#211
Александр Ривилис

программист, рыцарь ObjectARX
 
Регистрация: 09.05.2005
Киев
Сообщений: 2,413
Отправить сообщение для Александр Ривилис с помощью Skype™


Этот dxf-файл уже редактировали. Выложи оригинальный dxf-файл.
Александр Ривилис вне форума  
 
Непрочитано 03.06.2009, 16:08
#212
Servini


 
Регистрация: 03.06.2009
Сообщений: 6


Да, я убрал конфиденциальную информацию. Однако, после этого я проверил отредактированный файл на обоих компьютерах, ситуация один в один с тем, что я описал.
Если же без оригинального файла никак, то я хотел бы попросить разрешения прислать его Вам на почту. Выкладывать его в форуме всё-таки не хотелось бы.
Servini вне форума  
 
Непрочитано 03.06.2009, 16:20
#213
Александр Ривилис

программист, рыцарь ObjectARX
 
Регистрация: 09.05.2005
Киев
Сообщений: 2,413
Отправить сообщение для Александр Ривилис с помощью Skype™


Цитата:
Сообщение от Servini Посмотреть сообщение
Да, я убрал конфиденциальную информацию. Однако, после этого я проверил отредактированный файл на обоих компьютерах, ситуация один в один с тем, что я описал.
Если же без оригинального файла никак, то я хотел бы попросить разрешения прислать его Вам на почту. Выкладывать его в форуме всё-таки не хотелось бы.
Дело не в том, что ситуация у
тебя такая же, а в том, что DWGCODEPAGE в этом файле некорректная. Прислать можешь, но не уверен, что смогу помочь.
Александр Ривилис вне форума  
 
Непрочитано 03.06.2009, 16:28
#214
Servini


 
Регистрация: 03.06.2009
Сообщений: 6


Блин, какая жалость. (( Куда слать?
Хе-хе. Как оказалось, DWGCODEPAGE в оригинальном файле вообще не указана! Ж8()
В исправленном есть, а в оригинальном - нет!
Отправил.
Уточню ещё раз, текст там - английский.

Последний раз редактировалось Servini, 03.06.2009 в 17:00.
Servini вне форума  
 
Непрочитано 03.06.2009, 17:04
#215
Александр Ривилис

программист, рыцарь ObjectARX
 
Регистрация: 09.05.2005
Киев
Сообщений: 2,413
Отправить сообщение для Александр Ривилис с помощью Skype™


Могу предложить решение (у самого нет времени программировать). Идея в следующем. Каждый английский символ в строке состоит из двух. Первый - имеет десятичный код 130, второй на 31 больше чем код английского символа. Поэтому алгоритм должен быть такой:
1) Убрать все символы с кодом 130 (chr 130)
2) Заменить остальные символы x на x-31 (chr (- x 31))
Код:
[Выделить все]
(defun C:EN ( / s s1 e flag_dub)
  (setq s (cdr (assoc 1 (setq e (entget (car (entsel)))))))
  (setq s (vl-string->list s) s1 "") 
  (foreach x s
    (cond
      ((and (> x 128) (< x 158)) (setq flag_dub t))
      (flag_dub (setq s1 (strcat s1 (chr (- x 31))) flag_dub nil))
      (t        (setq s1 (strcat s1 (chr x))))
    )
  )
  (entmod (subst (cons 1 s1) (assoc 1 e) e))
  (princ)
)
Пусть простят меня поклонники лиспа за не эстетичный код.

Последний раз редактировалось Александр Ривилис, 03.06.2009 в 17:38.
Александр Ривилис вне форума  
 
Непрочитано 03.06.2009, 17:22
#216
Servini


 
Регистрация: 03.06.2009
Сообщений: 6


Спасибо, буду пробовать и изучать.
Попробовал код. Работает, спасибо, только пробелы тоже конвертирует, а этого делать не надо.
Мда. Язык совсем новый.
Если кто опытный найдет время - буду рад.

Последний раз редактировалось Servini, 03.06.2009 в 17:40.
Servini вне форума  
 
Непрочитано 03.06.2009, 17:40
#217
Александр Ривилис

программист, рыцарь ObjectARX
 
Регистрация: 09.05.2005
Киев
Сообщений: 2,413
Отправить сообщение для Александр Ривилис с помощью Skype™


Поправил немного код.
Код:
[Выделить все]
(defun C:EN_TEXT ( / ss)
  (setq ss (ssget '((0 . "TEXT"))))
  (if ss  (foreach x (vl-remove-if (function listp)  (mapcar
       (function cadr)
       (ssnamex ss))) 
    (jpn_enc x))
  ) ;_  if
  (princ)
)

(defun jpn_enc (en / s s1 e flag_dub)
  (setq s (cdr (assoc 1 (setq e (entget en)))))
  (setq s (vl-string->list s) s1 "") 
  (foreach x s
    (cond
      ((and (> x 128) (< x 158)) (setq flag_dub t))
      (flag_dub (setq s1 (strcat s1 (chr (- x 31))) flag_dub nil))
      (t        (setq s1 (strcat s1 (chr x))))
    )
  )
  (entmod (subst (cons 1 s1) (assoc 1 e) e))
)

Последний раз редактировалось Александр Ривилис, 03.06.2009 в 17:53.
Александр Ривилис вне форума  
 
Непрочитано 03.06.2009, 17:57
#218
Servini


 
Регистрация: 03.06.2009
Сообщений: 6


Супер! Практичекси идеально!
Теперь неправильно преобразовывает символы & и строчные буквы.
(мне стыдно)
Думаю, дальше я попробую сам, чтоб вас не затруднять. Образец кода есть, книжки найду.
Спасибо, Александр!
Servini вне форума  
 
Непрочитано 03.06.2009, 18:09
#219
Александр Ривилис

программист, рыцарь ObjectARX
 
Регистрация: 09.05.2005
Киев
Сообщений: 2,413
Отправить сообщение для Александр Ривилис с помощью Skype™


Для строчных нужно вычитать 32 (впрочем не уверен что это всегда справедливо).
Александр Ривилис вне форума  
 
Непрочитано 04.06.2009, 11:42
#220
Servini


 
Регистрация: 03.06.2009
Сообщений: 6


Ну, в общем, добавил пару исключений, но кардинально ничего менять не стал - 90% символов, с учетом этих исключений, переводятся правильно.
Что делать со строчными буквами (не с точки зрения программирования, а с точки зрения логики, сам язык оказался не таким уж сложным, при наличии отладчика, примера и документации разобраться можно) так и не понял, поэтому пока оставил.
Вот окончательный вариант, мож кому и поможет:
Код:
[Выделить все]
(defun C:ENT ( / ss s s1 e FLAG_DUB)
  (setq ss (ssget '((0 . "TEXT"))))
  (if ss  (foreach x (vl-remove-if (function listp)  (mapcar
       (function cadr)
       (ssnamex ss))) 
    (jpn_enc x))
  ) ;_  if
  (princ)
)
(defun jpn_enc (en / s s1 e flag_dub)
  (setq s (cdr (assoc 1 (setq e (entget en)))))
  (setq s (vl-string->list s) s1 "") 
  (foreach x s
    (cond
      ((and (> x 124) (< x 144)) (setq flag_dub t))
      ((and (> x 146) (< x 154)) (setq s1 (strcat s1 (chr (- x 113))) flag_dub nil))
      ((= x 47) (setq s1 (strcat s1 (chr x )) flag_dub nil))
      ((= x 124) (setq s1 (strcat s1 (chr (- x 79))) flag_dub nil))
      (flag_dub (setq s1 (strcat s1 (chr (- x 31))) flag_dub nil))
      (t        (setq s1 (strcat s1 (chr x))))
    )
  )
  (entmod (subst (cons 1 s1) (assoc 1 e) e))
)
Отдельное спасибо Александру за науку.
Servini вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > и снова Крякозябры



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Книга отзывов и предложений DWG.RU Perezz!! Разное 8334 05.06.2025 16:33
MicroFe 2007 и многоядерн. процессор - нас снова обманули? EXZet Расчетные программы 74 04.12.2008 20:22
И снова вопросы по 3Д Ернат AutoCAD 7 14.03.2007 11:01
И снова рамный узел на сварке Bleach Металлические конструкции 15 08.08.2006 15:36
И снова просьба по ЛИСПам!!! Gostushev LISP 5 28.07.2005 20:35