The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
Python: возможно ли использования кодировок отличных от utf8?, !*! Аноним, 13-Авг-20, 23:29  [смотреть все]
Добрый день. Интересует способ использовать utf16 в строках в исходнике (без костылей которые я могу придумать, но будет больно поддерживать).

Указание кодировки в формате

# -*- coding: utf16 -*-
не работает (пару лет назад работало): если файл с BOM, то пишет
SyntaxError: Non-UTF-8 code starting with '\xff' in file ../../tx_utf16.py on line 1, but no encoding declared;
если без
SyntaxError: Non-UTF-8 code starting with '\xff' in file ../../tx_utf16.py on line 4194, but no encoding declared;
естественно это не utf-8 это utf-16, и я указал кодировку. Зачем он тупит?

  • Python: возможно ли использования кодировок отличных от utf8?, !*! eRIC, 11:16 , 19-Авг-20 (5)
    SyntaxError: Non-UTF-8 code starting with
    > '\xff' in file ../../tx_utf16.py on line 4194, but no encoding declared;

    > естественно это не utf-8 это utf-16, и я указал кодировку. Зачем
    > он тупит?

    Python 3 по умолчанию использует UTF-8, скорее всего на строчке 4194 у вас данные которые написаны не в UTF-8 кодировке. Попробуйте использовать конструкции decode/encode чтобы перевести в правильной кодировке данные программе.


    • Python: возможно ли использования кодировок отличных от utf8?, !*! Аноним, 18:16 , 20-Авг-20 (6) +1
      В той строчке у меня комментарий, расшифровывающий юникодные символы, отличающиеся между платформами. Они корректные только в utf16. Я в принципе пока это обошёл, но чувствую на виндоус опять словлю проблем. Я так понял в python3 все строки (включая комментарии) расшифровываются в utf8 внутри? Во 2 можно было выбирать любую кодировку, в том числе для операций с файловыми путями.
      • Python: возможно ли использования кодировок отличных от utf8?, !*! Аноним, 18:22 , 20-Авг-20 (7)
        Проблемы у меня от того, что мне нужно обработать утф8 файлы с виндоус, некорректные в линуксе, на линуксе, потом вернуть их обратно и отправить на виндоус. Выполняю очень технологичную замену символов при чтении и обратную замену при записи, ну и конечно в коде только коды символов/байтов. Я не в восторге, если честно, да и кто знает какие ещё там последовательности криво отображаются между платформами. Спасибо хоть интернет у нас на линуксе -- разгребать юникодные косяки IIS было бы ещё печальней.
      • Python: возможно ли использования кодировок отличных от utf8?, !*! eRIC, 09:28 , 21-Авг-20 (8)
        > в python3 все строки (включая комментарии) расшифровываются в utf8 внутри? Во
        > 2 можно было выбирать любую кодировку, в том числе для операций
        > с файловыми путями.

        да в 3м все в utf8. во 2й версии если юникод то приходилось типа u'бла бла бла' писать.

        • Python: возможно ли использования кодировок отличных от utf8?, !*! Аноним, 19:22 , 21-Авг-20 (9)
          Там в коде полно артефактов времён второй версии. Просто мне был нужен utf16 вместо utf8, а получается нельзя иметь декодированные строки в нём (при конвертации корректный utf16 превращается в некорректный платформозависимый utf8), во всяком случае в ряде внешних либ. Насчёт комментариев я погорячился, это докстринг, но трейс указывает куда угодно, только не на место проблемы. В общем, я разобрался, целиком мой косяк, я отвлёкся на артефакты, перепутал различные проблемы, и искал совсем не там, где стоило бы. А ещё лучше не работать с питоном на венде/маке, лучше насовать немного костылей на линуксе, но зато корректно работать везде будет.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру