- Windows to Linux utf-8 file
- 3 Answers 3
- Кракозябры – исправляем не корректное отображение txt файлов из Windows в Linux
- Изменяем кодировку при открытии txt файлов
- Заключение
- Вам также может понравиться
- Tube Converter: скачиваем видео с YouTube, PeerTube, VK и множества других платформ
- Операторы google для эффективного поиска информации в сети
- Настройка рабочего окружения XFCE 4
- Один комментарий к “ Кракозябры – исправляем не корректное отображение txt файлов из Windows в Linux ”
- Добавить комментарий Отменить ответ
- Кракозябры – исправляем не корректное отображение txt файлов из Windows в Linux
- Изменяем кодировку при открытии txt файлов
- Заключение
- Read UTF8 files on windows and linux through c++
- 2 Answers 2
Windows to Linux utf-8 file
I have a file UTF-8 encoding in windows, and when i use it under windows it shows everithing right, but when i copy the file in Linux, the Unicode characters are giberish. The file is plain textfile. How can i get this file to be readable in linux, or how can i copy it properly?? thanks in advance
this is part of the translationf files $Tools = «Алатки»; $langDownloadFile = «Качиување на датотеката»; ins windows and the result u can see here testor.subnet.at/ndokeos/index.php?language=macedonian
The question marks on that page are actual question marks. It’s breaking earlier. Show the raw contents of the files.
in putty with less i get this ºÐ°Ñ°Ð°?>; $langTooBig $ for more information: see languages.txt in the lang folder. */ $Tools = «ÐлаÑки»; $langDownloadFile = «ÐаÑиÑваÑе на даÑоÑекаÑÐ?>; $langTooBig =$ but the link shows the files pretty nice testor.subnet.at/ndokeos/main/lang/macedonian/work.inc
Have you got Apache and/or PHP set up to serve the proper character set? According to Firefox that’s being served as Western ISO-8859-15
3 Answers 3
Looks like an Apache/PHP issue
Are you running your strings through PHP’s built-in htmlspecialchars method (or similar)? If so, you may need to switch its encoding to UTF8
Instead of htmlspecialchars($mytext) , try using htmlspecialchars($mytext, ENT_COMPAT, ‘UTF-8’)
Note the following (my previous answer) is incorrect, as Michael Burr notes, UTF-8 doesn’t need or use the BOM.
If it’s just the text, then there’s a chance it’s missing the Byte Order Mark (BOM), or is encoded with an incorrect BOM.
If it’s incorrect, the linux reader may be honouring it but your windows reader is ignoring it. Try re-opening your file in something like Notepad++ and resaving. Notepad++ has a bunch of options in the Format menu about saving UTF-8 files.
Кракозябры – исправляем не корректное отображение txt файлов из Windows в Linux
Каждый пользователь Linux рано или поздно встречается с такой задачей, как не корректное отображение txt файлов, которые были созданы в Windows. Так называемые кракозябры, возникают вследствие того, что в этих системах используется разная кодировка. В Windows, при сохранении txt файлов используется кодировка Windows-1251, в то время, как в системах Linux используется кодировка UTF-8.
Исправить проблему кодировки txt файлов из Windows довольно просто. В данной статье мы рассмотрим самый простой вариант, который можно применить и тем самым получить читаемый текст на кириллице в Linux системах. Можно конечно пойти и более сложным путем, внести правки в систему, в случае с графическим окружением Gnome и текстовым редактором Gedit, например, можно ввести команду “gsettings set org.gnome.gedit.preferences.encodings candidate-encodings “[‘UTF-8’, ‘WINDOWS-1251’, ‘KOI8-R’, ‘CURRENT’, ‘ISO-8859-15’, ‘UTF-16’]”. Либо, установить Dconf Editor и произвести правки через него.
Но, в некоторых случаях такой подход может привести к путанице в случае с разными текстовыми редакторами и графическими окружениями. Или, что еще хуже, через тот же Dconf можно изменить не тот параметр и потом долго пытаться понять что не так. В первую очередь, эта статья будет направлена для тех, кто в первые оказался в такой ситуации и мало знаком с Linux.
Изменяем кодировку при открытии txt файлов
Итак, первым из предлагаемых способов, рассмотрим добавление кодировки непосредственно перед самим открытием txt файлов. В системах Linux чаще всего используются несколько текстовых редактор, в рабочем окружении GNOME – GNOME Text Editor, Gedit, в Linux Mint – Xed, в KDE – Kate. В той же Kubuntu, кстати, текстовый редактор Kate открывает с правильной кодировкой, по этому, его мы рассматривать не станем. В остальных же случая, придется при открытии файлов в нижней части текстового редактора нажать на настройку, которая позволяет выбрать кодировку, затем, выбрать Кириллица (Windows 1251):
После чего можно открывать txt файл, который был создан в Windows:
После проделанных действий, текстовый редактор запомнит выбор и будет открывать txt файл в нужной кодировке. Не смотря на то, что для примера был выбран текстовый редактор GNOME Text Editor, интерфейс у него очень схож с остальными текстовыми редакторами, вроде того же gedit или xed.
Заключение
В большинстве случаев, проделанных действий будет достаточно. Тут стоит отметить, что в вашем дистрибутиве может быть установлен другой текстовый редактор, а по этому действия могут немного отличаться. Но основная задача, это найти в вашем редакторе параметр который отвечает за кодировку, а затем можно открывать txt файл.
Если вы работаете с дистрибутивами Linux основанных на Ubuntu, либо, на самой Ubuntu, то возможно вам будет интересно прочитать про альтернативный менеджер пакетов – nala.
Теперь, когда вы узнали, как открывать txt файлы, которые были созданы в Windows, можно переходить к играм, ведь это тоже имеет не малое значение. Нужно ведь как то расслабляться. И в этом вам поможет проект под названием – Linux Gaming. При помощи Linux Gaming вы можете запускать игры, которые были созданы для Windows в Linux. Подробнее о Linux Gaming можно прочесть по этой ссылке.
А на этом сегодня все, если статья оказалась вам полезна, подписывайтесь на рассылку журнала в pdf формате, а так же на социальные сети журнала Cyber-X:
По вопросам работы сайта, сотрудничества, а так же по иным возникшим вопросам пишите на E-Mail. Если вам нравится журнал и вы хотите отблагодарить за труды, вы можете перечислить донат на развитие проекта.
С уважением, редакция журнала Cyber-X
Вам также может понравиться
Tube Converter: скачиваем видео с YouTube, PeerTube, VK и множества других платформ
Операторы google для эффективного поиска информации в сети
Настройка рабочего окружения XFCE 4
Один комментарий к “ Кракозябры – исправляем не корректное отображение txt файлов из Windows в Linux ”
Для автоматического перехода в Linux Mint (Xed) можно выполнить
$gsettings set org.x.editor.preferences.encodings auto-detected “[‘UTF-8’, ‘WINDOWS-1251’, ‘KOI8-R’, ‘CP866’, ‘CURRENT’, ‘ISO-8859-15’, ‘UTF-16’]”
и смена кодировок будет автоматической.
Добавить комментарий Отменить ответ
Использование материалов разрешено только при наличии активной ссылки на источник.
Кракозябры – исправляем не корректное отображение txt файлов из Windows в Linux
Каждый пользователь Linux рано или поздно встречается с такой задачей, как не корректное отображение txt файлов, которые были созданы в Windows. Так называемые кракозябры, возникают вследствие того, что в этих системах используется разная кодировка. В Windows, при сохранении txt файлов используется кодировка Windows-1251, в то время, как в системах Linux используется кодировка UTF-8.
Исправить проблему кодировки txt файлов из Windows довольно просто. В данной статье мы рассмотрим самый простой вариант, который можно применить и тем самым получить читаемый текст на кириллице в Linux системах. Можно конечно пойти и более сложным путем, внести правки в систему, в случае с графическим окружением Gnome и текстовым редактором Gedit, например, можно ввести команду “gsettings set org.gnome.gedit.preferences.encodings candidate-encodings “[‘UTF-8’, ‘WINDOWS-1251’, ‘KOI8-R’, ‘CURRENT’, ‘ISO-8859-15’, ‘UTF-16’]”. Либо, установить Dconf Editor и произвести правки через него.
Но, в некоторых случаях такой подход может привести к путанице в случае с разными текстовыми редакторами и графическими окружениями. Или, что еще хуже, через тот же Dconf можно изменить не тот параметр и потом долго пытаться понять что не так. В первую очередь, эта статья будет направлена для тех, кто в первые оказался в такой ситуации и мало знаком с Linux.
Изменяем кодировку при открытии txt файлов
Итак, первым из предлагаемых способов, рассмотрим добавление кодировки непосредственно перед самим открытием txt файлов. В системах Linux чаще всего используются несколько текстовых редактор, в рабочем окружении GNOME – GNOME Text Editor, Gedit, в Linux Mint – Xed, в KDE – Kate. В той же Kubuntu, кстати, текстовый редактор Kate открывает с правильной кодировкой, по этому, его мы рассматривать не станем. В остальных же случая, придется при открытии файлов в нижней части текстового редактора нажать на настройку, которая позволяет выбрать кодировку, затем, выбрать Кириллица (Windows 1251):
После чего можно открывать txt файл, который был создан в Windows:
После проделанных действий, текстовый редактор запомнит выбор и будет открывать txt файл в нужной кодировке. Не смотря на то, что для примера был выбран текстовый редактор GNOME Text Editor, интерфейс у него очень схож с остальными текстовыми редакторами, вроде того же gedit или xed.
Заключение
В большинстве случаев, проделанных действий будет достаточно. Тут стоит отметить, что в вашем дистрибутиве может быть установлен другой текстовый редактор, а по этому действия могут немного отличаться. Но основная задача, это найти в вашем редакторе параметр который отвечает за кодировку, а затем можно открывать txt файл.
Если вы работаете с дистрибутивами Linux основанных на Ubuntu, либо, на самой Ubuntu, то возможно вам будет интересно прочитать про альтернативный менеджер пакетов – nala .
Теперь, когда вы узнали, как открывать txt файлы, которые были созданы в Windows, можно переходить к играм, ведь это тоже имеет не малое значение. Нужно ведь как то расслабляться. И в этом вам поможет проект под названием – Linux Gaming. При помощи Linux Gaming вы можете запускать игры, которые были созданы для Windows в Linux. Подробнее о Linux Gaming можно прочесть по этой ссылке.
А на этом сегодня все, если статья оказалась вам полезна, подписывайтесь на рассылку журнала в pdf формате, а так же на социальные сети журнала Cyber-X:
По вопросам работы сайта, сотрудничества, а так же по иным возникшим вопросам пишите на E-Mail . Если вам нравится журнал и вы хотите отблагодарить за труды, вы можете перечислить донат на развитие проекта.
С уважением, редакция журнала Cyber-X
Read UTF8 files on windows and linux through c++
I have some text files which are encoded using UTF-8. Is there a way to read them using c++ stream classes (wifstream for example)? I have seen some external references like boost and some codeproject code snippets. But, I dont want to use that just for this purpose. On linux it somehow works by calling imbue(std::locale(«en_US»)) but not on windows. I think the problem is that window assumes wifstream to be a UTF-16 encoded stream. Can’t I specify the unicode encoding with wifstream class somehow so that it uses UTF-8 not UTF-16?
What do you use them for? You can always read UTF-8 files using ifstream if you subsequently treat the resulting buffers as UTF-8. The «wide» streams tend to be even less portable since wchar_t has different sizes in Windows and Linux.
I am not going to read it as a whole buffer. Suppose I use extraction operator and read the stream character by character, what is going to happen? Will it read the characters correctly? I guess not.
2 Answers 2
In addition to just reading the bytes from the file normally, and treating them as UTF-8 (e.g., by not passing them to anything that expects locale encoded strings, only to things that expect UTF-8), Windows has another way to read in UTF-8.
You can set a ‘UTF-8’ mode on file descriptors, and then use wide character input and output on that file descriptor and Microsoft’s C runtime will handle transforming the wide characters to and from UTF-8 encoded byte streams:
#include #include #include int main(void)
If you run the above program with output redirected to a file you will get a UTF-8 encoded file.
Setting one of these Unicode modes on a file descriptor has the additional effect on consoles that wide character output will actually work on the console. I’m not sure why exactly Microsoft chose «broken» as the default, but at least there’s a way to enable a «not broken» mode.