Свежие комментарии

Title Comment
можно-можно ... например,

можно-можно ...

например, достоверно известно, что ПР умышленно не ставит "импорт" на посылки, до тех пор, пока ими не начнут заниматься - т.к. время доставки, за которое отвечают они, именно от этого момента и начинает считаться ...

а еще меня за..бавляет статус треккинга "неудачная попытка вручения", для просто-почтовых посылок, причем служба статуса на вопросы по нему отвечает отписками, а попытку вручения никто и не пытается делать ... такое впечатление что они это так трекают выписку извещения ...

Ситуация, когда на сайте

Ситуация, когда на сайте появляется сильно позже реальной выдачи - она нормальная, они "в компьютер" вбивают в отделении не каждый день, явно.

А вот ситуация, когда на сайте появилась операция, которой не было - у меня впервые.

Да, бывает. Бывает и кирпич

Да, бывает. Бывает и кирпич вместо айфона, по слухам.

Но тут - был явно не тот случай, просто по времени не сходилось.

треккинг у них глючит знатно,

треккинг у них глючит знатно, да.

у меня до сих пор числится неполученной посылка, которую я забрал уже давно ...

сегодня с сортироки вышла посылка, отправленная последней из китая, остальные даже не импортировались ... ну хоть самая хрупкая уже не на складе, пойду 2-3 получать ...

Бывает и

Бывает и так:
http://virtualshopping.livejournal.com/8346963.html
http://virtualshopping.livejournal.com/8352379.html

Я не вижу особого смысла так химичить. Ну то есть если надо

Я не вижу особого смысла так химичить. Ну то есть если надо среднее время доставки улучшить, для статистики (чтобы премию получить, например), то нельзя же это делать с посылками, у которых есть работающий трекинг. Можно только с теми, которые на входе в Россию получили российский номер, который получатель не знает (и не может узнать).
Ну не может быть, чтобы уж ума совсем не было.

у меня больше 10 посылок в разной степени доставки висят с н

у меня больше 10 посылок в разной степени доставки висят
с ноября - декабря
и недели две вообще с почты никаких вестей

но твой случай вообще удивительный
кто-то там явно химичит и по башке получить должен!

мне тоже помогло =) выехавшая 13-го из китая короппка сегодн

мне тоже помогло =)
выехавшая 13-го из китая короппка сегодня (30-е) объявилась на местной таможне, завтра-послезавтра, наверное, уже принесут.

У Винды есть CreateFileA и

У Винды есть CreateFileA и CreateFileW.
Первая работает с обнобайтовыми строками в кодировке MBCS (то есть со строками, каждый символ которой занимает 1 или 2 байта; по идее может быть и большее количество, но в MSDN указывается, что символы длинее 2х байтов не поддерживаются), вторая с честными двух-байтовыми юникодными строками (каждый символ которых всегда занимает ровно 2 байта).

C-шные fopen и _wfopen внутри используют именно CreateFileA и CreateFileW, соответственно.

Более подробная информация по этим ссылкам:
http://msdn.microsoft.com/en-us/library/5z097dxa.aspx
http://msdn.microsoft.com/en-us/library/cwe8bzh0.aspx

Очень хорошо про разницу MBCS и юникода расписано тут:
http://www.codeproject.com/KB/string/cppstringguide1.aspx

В некотором смысле, виндовый MBCS - это аналог UTF8, так как тоже имеются специальные управляющие коды и разные символы кодируются различным количеством байтов.

Подождите, у винды есть два

Подождите, у винды есть два fopen:
fopen(const char *path,...)
_wfopen(const wchar_t *path,...)

И мне казалось, что multibyte char передается во вторую, иначе зачем бы она вдруг была нужна.

Вообще-то под Виндой

Вообще-то под Виндой "безобидный" char*, прилетающий от системы (через GUIшные контролы или через параметры командной строки) - это вовсе не восьмибитовые ACSII-строки, как можно было бы ожидать, а строки в так называемой multi-byte кодировке.
Для русского языка этот MBCS вырождается в ASCII, так как одного байта вполне хватает для таблицы cp1251, а вот во всяких японских и китайских локалях один символ на экране соответствует двум и более char'ам в строке, которую получит приложение.

Ну и сама система работает с этим зоопарком в согласованном стиле, то есть если мы получили на вход (то есть от пользователя) строку в MBCS, то можем вполне передавать эту строку далее, во всякие там CreateFile и прочие функции. Соответственно, можно ожидать, что Cшный fopen нормально отреагирует на аргумент в MBCS (с MS VC это точно так, насчет других компиляторов нужно проверять).

Всё это, естественно, только в том случае, если по-китайски вводят имя файла в системе с установленным системным китайским языком.
Для русской системы китайская MBCS-строку - полная чушь и наоборот.
То есть если вдруг понадобится работать сразу с несколькими языками, то придется всё делать только через wchar, тут уж без вариантов.

Вроде в unix-ах (в mac видимо аналогично) стандартные ф-ии н

Вроде в unix-ах (в mac видимо аналогично) стандартные ф-ии не работают с wchar, поэтому там мультибайтный UTF-8. Казалось бы в Windows надо просто выбрать utf8 как специальную кодовую страницу, но похоже так нельзя, так можно только при конвертации. В итоге надо использовать wchar.

http://stackoverflow.com/questions/166503/utf-8-in-windows

1) Подать заявление "хочу у

1) Подать заявление "хочу у вас"
2) Встреча с управляющей, чтобы в глаза посмотреть, подпись договора
3) Собственно открыл счет, положил туда немного денег, подал заявление на интернет-банк
4) получил клиент-банковские потроха

Но, правда, с тех пор - ни разу не был.

>> в банк я ездил четыре(!)

>> в банк я ездил четыре(!) раза
ну видимо от банка зависит, я за 2 визита открыл счет
1. заполнил документы, карточку подписей
2. получил флешку с эцп

да, и обслуживание счета бесплатное

Под Windoze в общем случае только _wfopen() потому что 8-бит

Под Windoze в общем случае только _wfopen() потому что 8-битовая кодировка зависит от локали.
Впрочем, перекодировать из UTF8 довольно просто, так что один из возможных подходов - решить, что библиотека работает только в UTF8, и уже внутри перекодировать как надо.
Можно, впрочем, и в обратную сторону примерно так же.

Да-да, про разницу в виде UTF в Mac/Linux я уже прочитал в и

Да-да, про разницу в виде UTF в Mac/Linux я уже прочитал в исходниках Qt (QFile), это тоже мне доставило.

Вот, кажется http://nedbatchelder.com/blog/201106/filenames_

Вот, кажется
http://nedbatchelder.com/blog/201106/filenames_with_accents.html

Не, к сожалению функциональности нужно больше, чем есть у со

Не, к сожалению функциональности нужно больше, чем есть у сокета. Например, нужно уметь открыть JPEG2000 stream (jasper-ом). Ну и там еще немного.

То есть это можно делать над буфером (и делается) или над char *filename, а с просто int filehandle - не получается.

Посему - от Qt мне нужно только имя файла. И там для этого все есть, оно в std::wstring умеет сконвертировать. Проблема лишь в том, что в виндах нужно одно (wstring), а в остальных системах - другое (utf8 в char*)

Что с ним делать понятно. На то в errno.h есть EBADF. А как

Что с ним делать понятно. На то в errno.h есть EBADF. А как его возвращать вызывающему - ну так же как возвррается EIO.

Но в общем я именно за то и не люблю Qt и им подобные, что они крайне плохо стыкуются со всем что должно поддерживтаь еще что-то кроме них.

Попадалась мне некоторое время назад статья, как разные файл

Попадалась мне некоторое время назад статья, как разные файловые системы воспринимают различным образом написанные уникодные имена (в смысле, символ или комбинация символа с диакритиками).

Да, он есть, но в том месте, куда передается filename (LibRa

Да, он есть, но в том месте, куда передается filename (LibRaw) - нельзя передать дескриптор.

И делать такой интерфейс, с дескриптором, не хочется, по куче причин. Передадут туда сокет (в котором нету seek) и что с ним делать?

Если есть все, то должен быть и fileno

Если есть все, то должен быть и fileno

В Qt все есть, но что мне с их файлов проку?

В Qt все есть, но что мне с их файлов проку?

Да вероятнее всего utf8 и все

Да вероятнее всего utf8 и все будет хорошо.
Но я когда совсем недавно столкнулся с этим вопросом делал конверсию так:
На всех платформах принимаю имя utf8 encoded. Конвертирую в wchar_t (на windows это получается utf16, на Linux нормальные 32bit ISO10646), все строковые операции в wchar_t
Далее на win _wfopen(), на linux делаю конверсию в установленную пользователем locale
То есть вероятнее всего в обратно в utf8. Но если у кого-то koi8-r, то нормально.

Но надо помнить, что не всегда по полученому имени файла можно будет восстановить оригинальное имя в Unicode.
Использовать code page 65001 оказалось проблематично, подробности я забыл но их помнит google.

А что, в Qt еще своей обертки для открытия файлов, получающе

А что, в Qt еще своей обертки для открытия файлов, получающей QString нет? Я думал что там уже это, совсем для всего обертки есть. Если уж они свой database abstraction layer написали...

А в библиотеке для win32 нужно еще бы TCHAR поддержать. Который в зависимости от не помню уже каких дефайнов будет либо char, либо wchar_t.

Вопрос мой, на самом деле, распадается на два 1) Что делать

Вопрос мой, на самом деле, распадается на два

1) Что делать с библиотекой? Я подозреваю, что для Win32 нужно кроме open_file(const char*fname) дать еще open_wfile(const wchar_t *), а на остальных системах - не давать.

2) Что делать с каким-то собственным приложением для end-user. Так как там имена файлов исходно юникодные (потому что Qt's QString), проблем с преобразованием вроде бы нет

Не надо заставлять это делать ПОЛЬЗОВАТЕЛЯ. Сильно извратит

Не надо заставлять это делать ПОЛЬЗОВАТЕЛЯ. Сильно извратиться - значит сделать это внутри программы.
Хотя, похоже проще сделать свою обертку вокруг fopen, которая будет сначала звать MultiByteToWideChar с явным указанием 65001, а потом уже _wfopen.
И #ifdef _WIN32 останется во одном include.

65001 - не выход, пользователя не заставишь это сделать. То

65001 - не выход, пользователя не заставишь это сделать.
То есть получается две ветки кода, одна с wchar_t, вторая с UTF8, так что ли?

В Linux можно уже считать что "отдаем в utf-8 и будет счасть

В Linux можно уже считать что "отдаем в utf-8 и будет счастье".
Уже несколько версий как все дистрибутивы по умолчанию ставят локаль utf-8.
А GNOME начал навязывать utf-8 как кодировку файловой системы еще несколько раньше.
Так что сейчас про фокусы с переменной среды G_FILENAME_ENCODING уже можно забыть.
Тем более что за пределами Gtk-based GUI-шных программ никто на эту переменную особо и не смотрел.
В Win32 если очень извратиться можно выставить utf-8 (aka code page 65001) в качестве "национальной" кодировки.

На ОСНО, насколько я въехал, ИП платит НДС (18%, но есть зач

На ОСНО, насколько я въехал, ИП платит НДС (18%, но есть зачет) и НДФЛ (13%).

Для ИТ-консультанта никакого смысла нет совсем, категорически. Товаров и услуг не закупает, к зачету взять нечего, платить 13% тоже как-то глупо.

Pages

Subscribe to comments_recent_new