Изменить кодировку Excel по умолчанию на UTF-8?

25

Я использую различные инструменты для регулярной подготовки данных для Интернета. Один этап требует от меня открыть CSV в Excel, внести изменения и сохранить файл.

Есть ли способ заставить Excel принять кодировку UTF-8 и сохранить его файлы с этой кодировкой?

Dizzley
источник
1
Чтобы уточнить, я хотел бы изменить настройку, чтобы Excel предполагал, что входной файл по умолчанию имеет формат UTF-8. Как упомянуто ниже, LibreOffice / OpenOffice делает это.
Диззли
Если на самом деле у вас нет символов Unicode, я бы подумал об использовании промежуточного программного обеспечения для преобразования всех CSV-файлов в ASCII и их открытия в Excel.
Василь
1
Связанный вопрос здесь, но не совсем то же самое.
HHH

Ответы:

15

Я ответил на аналогичный вопрос в Кодировке символов по умолчанию для Excel Text Wizard? ,

Я нашел свой ответ в разделе Изменение типа источника импорта текста по умолчанию в Excel .

  1. В редакторе реестра перейдите в раздел HKEY_CURRENT_USER> Программное обеспечение> Microsoft> Office> [версия Excel здесь - вероятно, наибольшее число в этой папке]> Excel> Параметры
  2. щелкните правой кнопкой мыши на правой стороне и перейдите в New> DWORD
  3. Назовите элемент DefaultCPG и сохраните
  4. щелкните правой кнопкой мыши DefaultCPG и выберите «Изменить».
  5. установить основание на десятичное
  6. введите код, показанный в мастере Excel (для UTF-8 это 65001)
  7. нажмите ОК

Как говорит Василь в комментарии к этому вопросу, если ваш файл на самом деле не в формате UTF-8, вы можете технически преобразовать символы в файле в нужную кодировку перед открытием в Excel. Однако для моих целей UTF-8 достаточно хорошо отображает не поврежденные символы.

Роберт Х.
источник
3
Есть ли причины не делать этого? Почему это не стандартное поведение Excel? --- Моя команда часто имеет дело с наборами данных, содержащими иностранные символы, и мне интересно, есть ли причина не выполнять это действие на каждой из наших машин.
user1318135
3
Это, к сожалению, не работает на моей машине. Файлы по-прежнему открываются с кодировкой по умолчанию (Win 7, Office 2016).
user1318135
8
Не работает и у меня, Win 10 Office 2016
Phuah Yee Keat
2
Нет кости. Excel ведет себя так же глупо, как и всегда. Можно было бы ожидать, что очевидная функция, подобная этой, будет доступна через пользовательские настройки в программном обеспечении, таком же зрелом, как Excel.
Аарон Брэмсон
4

Один из простых способов изменить кодировку Excel ANSI на UTF-8 - открыть файл CSV в блокноте и выбрать «Файл»> «Сохранить как». Теперь внизу вы увидите кодировку, установленную на ANSI, измените ее на UTF-8 и сохраните файл как новый файл, а затем все готово.

Moudiz
источник
Я буду экспериментировать с этим. Одна из проблем, с которыми я сталкиваюсь, - это постоянное открытие файлов в правильной кодировке, поэтому я не получаю данные в двух кодировках в одном файле результатов. Тогда это становится трудно исправить. Мне бы очень хотелось, чтобы Excel позволил мне лучше выбрать кодировку входного файла.
Диззли
3

Похоже, что метка порядка байтов требуется программным обеспечением Microsoft Office.

  1. Используя Notepad ++, конвертируйте CSV с помощью меню: Кодировка -> Преобразовать в UTF8-BOM.

  2. Использование sedутилиты Unix, доступной в cmder или Git для Windows . См. Добавление спецификации в файлы UTF-8 .

    sed -i '1s/^/\xef\xbb\xbf/' file.csv
    

  • Протестировано с Excel 2016
  • Это то, что avwtp имел в виду в своем ответе .
Cristian
источник
2

Вам нужно использовать File > Importопцию и начать с пустого документа и указатьUTF-8

введите описание изображения здесь

но это далеко не оптимально, чтобы сделать эту настройку по умолчанию для всех файлов, в любом случае нет необходимости вращать файлы вокруг Google Drive или LibreOffice. Значения по умолчанию просто плохо выбраны, и неспособность изменить это раздражает.

Связанный

  1. Как установить кодировку символов при открытии Excel, но не находит возможности изменить значения по умолчанию, чтобы все файлы автоматически открывались с UTF-8 вместо формата Macintosh в OSX

  2. Как изменить параметр файла по умолчанию на UTF-8 в отличие от параметра файла Macintosh в Apple.SE.

HHH
источник
0

Я решил подобную проблему раньше. Неудачно, но вы можете использовать LibreOffice , который по умолчанию является UTF-8.

Lluser
источник
LibreOffice очень удобен для этого. Тем не менее, иногда я запускаю макросы VBA. Благодаря Lluser
Dizzley
0

Там в Excel надстройки доступен здесь для работы с файлами Unicode CSV , которые должны помочь вам.

Вот заметка разработчика Джеймона Мэтью:

Excel обрабатывает файлы .csv как текстовые файлы и заменяет все символы Юникода на «?» При обычном сохранении. Если вы хотите сохранить символы Unicode, вам нужно сохранить файл как «Unicode text (* .txt)», который является файлом с разделителями табуляции. Поскольку я не смог найти ни одного существующего решения для сохранения символов Unicode в формате CSV, я подумал, что я попробую создать надстройку Excel, чтобы сделать именно это.

1

Каран
источник
0

Это не лучшее решение, но это вариант: загрузите файл Excel на диск Google, откройте его с помощью вкладок Google и загрузите как файл CSV. Это сработало для меня.

Виктор
источник
5
Это не отвечает на вопрос, как изменить кодировку документа Excel.
Ramhound
Конечно, когда вы открываете CSV в Excel, вы теряете форматирование ячейки, поэтому некоторые строки числовых идентификаторов преобразуются в целые числа.
Диззли
0

Предполагая, что у вас есть оболочка Unix (Cygwin), я добавляю в начало csv-файла маленький 3-значный код Unicode ID (UTF-8), а затем он отлично читает в Excel и, что более важно, он правильно обрабатывается как ввод с использованием VB Excel автоматизации.

UTF-8.txt

EFBBBF << hex редактировать в 3-х символьный файл.

cat UTF-8.txt file-to-use.csv> new_file.csv

avwtp
источник
1
(1) Можете ли вы описать, как / почему это работает? (2) Можете ли вы описать , как именно создать этот UTF-8.txtфайл?
Скотт
Я предлагаю использовать шестнадцатеричный редактор и набрать 3 последовательности символов. Почему это работает, понятия не имею. Я нашел это решение, взяв существующий CSV-файл UTF-8, переименовав его в txt, импортировав его в Excel (как предложено в других потоках), сохранив его как CSV с подключаемым модулем Unicode (другой поток), а затем выполнив двоичный анализ. из двух файлов. Единственным отличием была начальная последовательность из 3 символов.
avwtp
Посмотрите эту тему, почему это работает [ссылка] ( stackoverflow.com/questions/6002256/… )
avwtp