Как преобразовать ANSI-кодированный файл в UTF-8 с помощью Notepad ++?

У меня есть веб-сайт, и я могу отправить своих турецких персонажей в jQuery в Firefox, но Internet Explorer не отправляет моих турецких персонажей. Я посмотрел на исходный файл в блокноте, а кодовая страница этого файла – ANSI.

Когда я конвертирую его в UTF-8 без спецификации и закрываю файл, файл снова становится ANSI при повторном открытии.

Как я могу конвертировать мой файл из ANSI в UTF-8?

Относительно этой части:

Когда я конвертирую его в UTF-8 без BOM и файла закрытия, файл снова ANSI, когда я снова открываю.

Самое простое решение – полностью устранить проблему, правильно настроив Notepad ++.

Попробуйте Settings -> Preferences -> New document -> Encoding -> выберите UTF-8 без спецификации и Apply to opened ANSI files флажок Apply to opened ANSI files .

Таким образом, все открытые файлы ANSI будут обрабатываться как UTF-8 без спецификации.

Для объяснения, что происходит, прочитайте комментарии ниже этого ответа.

Чтобы полностью узнать о Unicode и UTF-8, прочитайте эту замечательную статью от Джоэла Спольского.

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

Мне нужно было преобразовать 500 xml-файлов в UTF8 через Notepad ++. Почему Блокнот ++? Когда я использовал опцию «Encode in UTF8» (многие другие конвертеры используют одну и ту же логику), она испортила все специальные символы, поэтому я должен был явно использовать «Преобразовать в UTF8».


Вот несколько простых шагов для преобразования нескольких файлов через Notepad ++ без испорчения специальными символами (например, диакритические знаки).

  1. Запустите Notepad ++, а затем откройте меню Plugins-> Plugin Manager-> Show Plugin Manager
  2. Установите Python Script . Когда плагин установлен, перезапустите приложение.
  3. Выберите меню « Плагины» -> «Питонный скрипт» -> Новый скрипт .
  4. Выберите его имя, а затем пройдите следующий код:

convertToUTF8.py

 import os import sys from Npp import notepad # import it first! filePathSrc="C:\\Users\\" # Path to the folder with files to convert for root, dirs, files in os.walk(filePathSrc): for fn in files: if fn[-4:] == '.xml': # Specify type of the files notepad.open(root + "\\" + fn) notepad.runMenuCommand("Encoding", "Convert to UTF-8") # notepad.save() # if you try to save/replace the file, an annoying confirmation window would popup. notepad.saveAs("{}{}".format(fn[:-4], '_utf8.xml')) notepad.close() 

В конце концов, запустите скрипт

Если в вашем файле не указаны символы, отличные от ASCII (кодовые страницы 128 и выше), UTF-8 без спецификации совпадает с ASCII, байт для байта – поэтому Notepad ++ ошибается.

Что вам нужно сделать, так это указать кодировку символов при обслуживании ответа AJAX – например, с помощью PHP, вы сделаете так:

 header('Content-Type: application/json; charset=utf-8'); 

Важная часть состоит в том, чтобы указать кодировку с каждым ответом JS – иначе IE вернется к системному кодированию по умолчанию пользователя, что является неправильным большую часть времени.

  • Границы Tmux отображаются как xq вместо строк?
  • URL-адрес JDBC для конфигурации MySQL для использования кодировки символов utf8
  • Метод Ruby для удаления акцентов из международных символов UTF-8
  • Удаление «utf8 = ✓» из представлений формы Rails 3
  • Tmux: пытается связать ключ utf8
  • Каково максимальное количество байтов для кодированного символа UTF-8?
  • Как преобразовать несколько файлов в кодировку UTF-8 с помощью инструментов командной строки * nix?
  • Проблемы чтения / записи данных UTF-8 в MySQL из Java с использованием JDBC-коннектора 5.1
  • Разве это не на больших байтовых машинах UTF-8, отличных от маленьких конечных машин? Так почему же тогда UTF-8 не требует спецификации?
  • Угадывание кодировки текста, представленного как byte в Java
  • Использование PowerShell для записи файла в UTF-8 без спецификации
  • Давайте будем гением компьютера.