Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M Новый топик    Ответить
 Загрузка файлов и кодировка  [new]
MasteRus
Member

Откуда:
Сообщений: 46
Добрый день, уважаемые форумчане. Имеется следующая проблема: При загрузке файлов через csp названия файлов коверкаются, если содержат кириллицу. Как правильно задать кодировку имени файла?

Возможен ли данный баг, потому что в свое время, возможно, было выбрана 8 бит вместо 16 бит? Как вообще узнать версию кодировки базы?

Cache 5.0.21, windows Server 2003, IE 6-11
18 ноя 15, 09:15    [18433331]     Ответить | Цитировать Сообщить модератору
 Re: Загрузка файлов и кодировка  [new]
servit
Member

Откуда: г. Кишинёв, Республика Молдова
Сообщений: 3120
Блог
MasteRus
Возможен ли данный баг, потому что в свое время, возможно, было выбрана 8 бит вместо 16 бит?
Нет.
MasteRus
Как вообще узнать версию кодировки базы?
Проще всего по $zv.
MasteRus
Как правильно задать кодировку имени файла?

PS: в последних версиях Caché можно, например так:

set %response.Headers("Content-Disposition")="attachment; filename*=UTF-8''"_##class(%CSP.Page).EscapeURL(name,"UTF8")

Файл с именем "Привет Caché.пока" обрабатывается браузерами нормально, включая IE.
18 ноя 15, 12:28    [18434702]     Ответить | Цитировать Сообщить модератору
 Re: Загрузка файлов и кодировка  [new]
MasteRus
Member

Откуда:
Сообщений: 46
servit, Я наверное немного непонятно написал, имелось ввиду upload, а не download файла, т.е.
%request.GetMimeData("FILE",1).FileName
выдает кракозябры или вопросительные знаки вместо русских символов, при этом остальные поля грузятся нормально.

За $ZV спасибо!
18 ноя 15, 13:11    [18435000]     Ответить | Цитировать Сообщить модератору
 Re: Загрузка файлов и кодировка  [new]
servit
Member

Откуда: г. Кишинёв, Республика Молдова
Сообщений: 3120
Блог
MasteRus
выдает кракозябры или вопросительные знаки вместо русских символов
Покажите Ваш код.

Если в upload.csp из SAMPLES в секцию <head> добавить строку <meta http-equiv="Content-Type" content="text/html; charset=windows-1251">, то нормально обрабатываются файлы "Привет.vbs", "Привет Caché.vbs" (Тестировал на Caché 5.0.21 8-бит, локаль ruw8, IE 6, веб-сервер встроенный)

PS: по указанной выше второй ссылке описаны подробности.
18 ноя 15, 16:14    [18436517]     Ответить | Цитировать Сообщить модератору
 Re: Загрузка файлов и кодировка  [new]
MasteRus
Member

Откуда:
Сообщений: 46
servit, Проблема есть и в upload.csp из примеров:
+
Картинка с другого сайта.

на экран, в файловую систему и в базу в моем приложении пишется неправильный текст, но если вставить его в сообщение форума то выходит вот так:
Submitted filename: E:\1\Характеристика.docx
Size of file: 14731
...


<meta http-equiv="Content-Type" content="text/html; charset=windows-1251"> не помогает.

Все тесты на IE 8 и 11, FireFox 42 (последний, на данный момент) - одна и та же проблема.
19 ноя 15, 08:22    [18438935]     Ответить | Цитировать Сообщить модератору
 Re: Загрузка файлов и кодировка  [new]
MasteRus
Member

Откуда:
Сообщений: 46
Поправка, нормально выглядит только в предварительном просмотре. Куда копать?
19 ноя 15, 08:28    [18438943]     Ответить | Цитировать Сообщить модератору
 Re: Загрузка файлов и кодировка  [new]
servit
Member

Откуда: г. Кишинёв, Республика Молдова
Сообщений: 3120
Блог
MasteRus,

>w $zcvt("E:\1\Характеристика.docx","I","UTF8")
E:\1\Ха?ак?е?ис?ика.docx
>w $zcvt("E:\1\Характеристика.docx","O","UTF8")
E:\1\Характеристика.docx

Пропишите на странице везде явно кодировку Windows-1251, не поможет - используйте $zcvt.
19 ноя 15, 09:09    [18439032]     Ответить | Цитировать Сообщить модератору
 Re: Загрузка файлов и кодировка  [new]
MasteRus
Member

Откуда:
Сообщений: 46
servit,

Вариант с проставлением кодировки почему-то не работает, поэтому воспользовался $zcvt. Спасибо за помощь!
19 ноя 15, 12:48    [18440351]     Ответить | Цитировать Сообщить модератору
Все форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M Ответить