+77 голосов |
Вроде бы CSV – достаточно очевидный и стандартный способ обмена данными между программами, оперирующими табличными данными. Но «сюрпризов» он по-прежнему преподносит более чем.
Не спрашивайте почему и зачем (это долгая и печальная история, начавшаяся еще вот с этого), но понадобилось передать в смартфон адресную книгу именно через CSV. Ну, есть программы, которые это умеют, главная задача – получить исходный файл.
Казалось бы, чего проще? Имеется резервная копия телефонной книги в Outlook, которая умеет экспортировать контакты в CSV: раз – и готово. Но если бы все было так просто, не было бы этого текста :) В результирующем файле все символы кириллицы (имена, фамилии) оказались заменены знаком вопроса. Предположив, что что-то сломалось в Outlook, попробовал проделать то же самое в Hotmail. Аналогично!
Хорошо, что я человек бывалый и немного с проблемами CSV знакомый. В частности, еще давно сталкивался с их переносом (и соответствующих макросов) между системами с разными языками, а главное – с разными региональными настройками. Та самая comma оказывается запятой только для американцев и британцев, а для прочих европейцев – точкой с запятой. Ну, тут как бы все честно, нам запятая нужна для других целей. В любом случае хорошо, что есть стандартный способ управления такими нюансами – особенно, если пользователь о них осведомлен.
У меня ОС англоязычная, Microsoft Office русскоязычный, системная локаль выставлена правильно, но вот служебные форматы по какой-то причине я оставил английские. Здесь-то собака и зарыта. Поменял форматы на русские и все получилось. С Hotmail, кстати, ситуация аналогична: достаточно сделать интерфейс сервиса русским и кириллица преобразуется корректно.
В общем, happy end, но осадок остался. Ведь и Outlook, и Hotmail оперируют Unicode. В этом легко убедиться: в Hotmail достаточно глянуть на текущую кодировку веб-страницы, а в Microsoft Office, к примеру, испортить заголовок doc-файла и, открыв его в Word, выбрать Unicode. На первый взгляд может показаться, что перекодировка Unicode в ANSI – процесс неоднозначный, ведь часть информации действительно теряется. Но ведь язык-то известен! На то и Unicode. Логично предположить, что и в дальнейшем (в CSV) я хочу получить данные на том же языке. На деле же происходит следующее: почему-то применяется таблица перекодировки для некоего «главного» языка, в данном случае, видимо, английского, естественно, кириллица не попадает на нужные места в таблице ANSI и программа в ужасе заменяет ее знаком вопроса. Хотя, чем знак вопроса лучше, чем другие (предположительно) нечитаемые, но все же несущие информацию символы?
Странно сталкиваться с подобными проблемами в XXI веке. Программисты, видимо, пошли по пути наименьшего сопротивления, выбрав универсальный алгоритм "на все случаи жизни", хотя стоило бы чуть-чуть дополнительно поразмыслить. К примеру, обнаружив большое количество «левых» символов, вероятно, стоит заменить таблицу перекодировки. Хотя нельзя исключить что это унаследованная проблема. Ведь получается, что текстовые данные, записанные более чем в двух алфавитах, через CSV перенести полностью нельзя в принципе. Так почему бы не использовать для этого формата Unicode, предоставив выбор пользователю?
Ready, set, buy! Посібник для початківців - як придбати Copilot для Microsoft 365
+77 голосов |
Месяц назад были аналогичные пляски с бубном:
Дано:
Телефон Samsung 4-х летней давности
Свежий Samsung Galaxy Gio на Android 2.3
Оказалость что программы у них для работы с компом разные и новая прога старый телефон не признает, а старая новый.
Никакие стандартные методы переноса адресной книги не сработали. Остался только экспорт через оутлук с промежуточной остановкой csv:
1)Для передачи кирилицы понадобилось сохранять файл при экспорте к кодировке дос.
2)Обнаружить несоответствие полей в резулитирующей таблице - контакты попросту оказывались без номеров телефона.
3)Разбирался со структурой телефонной книги нового телефона.
4)В ручную редактировал csv чтобы поле где хранится номер совпало с аналогичным в телефонной книге. И удалял ненужные поля.
5)Пару часов матерных слов в адрес гениев из корейской глубинки и доставаний жены - скоро ей телефон вернут, и о чудо оно работает.
Игорь,
это Вы несколько сот контактов из смартфона Nokia в Windows Phone не пробовали переносить.
Ко всем перечисленным выше мучениям, как оказалось, можно добваить ещё и языковые преференции вебинтерфейса службы Windows Live.
Комбинированием региональных установок на каждом из этапов конвертации на третий день удалось смигрировать адресную книгу с минимальными потерями...
так Windows Live = Hotmail
а в общем, да, не сомневаюсь, что бывает и хуже.
Поэтому когда я узнал что Nokia кинула всех владельцев смартфонов на symbian и перешла на microsoft я сразу догадался что мой следующий телефон будет какой то другой фирмы.
То вы его готовить не умеете :) А если серьезно, то СSV все равно не подходит для переноса адресной книги. И не по причине ограниченности его формата, а по причине тупизны экспорта/импорта, который не понимает имена полей с пробелами, не в ASCII, и т.п.
Много раз переносил адресную книгу, начиная с Siemens-ов на самые разные девайсы (кроме, конечно, айвсякого) с WM5,6 Android, Symbian и просто виндой.
Не надо делать экспорт/импорт. Надо настроить синхронизацию штатными средствами для обеих плеч. И все.
Т.е. с исходного девайса синхронизируем с аутлуком, а потом дестинайшен девайс синхронизируем с аутлуком.
Переноситься все, вплоть до фотографий.
Как вариант - синхронизировать с гуглом.
конечно, CSV - аварийный вариант. и тут был именно этот случай. но все-равно не понятно, почему бы не довести поддержку CSV до ума.
Может кому пригодится...
Знакомому супруга на день рождения подарила новый телефон Nokia. За праздничным столом именинник у меня, как у единственного из присутствующих, связанного с IT, поинтересовался, - можно ли перекинуть в новый телефон контакты из из его старенького Sony Ericsson?
"Легко!" - ответил я. Операцию назначили на перерыв между холодными и горячими закусками.
Оказалось, что фирменный софт от Sony умеет выгружать контакты в Google. Зарегистрировались. Загрузили контакты на сервер. Сделали экспорт из Google в формате CSV для Outlook.
Импортировать полученный файл программа от NOKIA отказалась.
После перерыва на "горячее" вернулись к проблеме. В результате выяснилось:
Вот такие дела.
P.S. Засомневался: может в файле от Google разделителем была "точка с запятой" а поменяли на "запятую"? Ведь выпито было немало...
вывод: хорошо, когда за праздничным столом есть хотя бы один айтишник ;)
Хорошо, когда ИТ-шник - вообще попадает за стол, в таком случае.