如何在Python 3中读取未使用utf-8编码的字符串

fnvucqvd  于 2023-05-19  发布在  Python
关注(0)|答案(1)|浏览(134)

在我的应用程序中,我有6个SQL INSERT字符串,其中包含德语、法语、西班牙语、英语、俄语和意大利语的文本数据。我使用SQLiteStudio(运行在64位Win7o.s.上)从一个已填充的表中获取SQL字符串。这是德国字符串:

#---------------------------------------------------------------------------
# \file deHelpData.py 
# \brief
#
# \version rel. 1.0
# \date Created on 2023-05-08
# \author massimo
# Copyryght (C) 2023 organization_name. All rights reserved.
#---------------------------------------------------------------------------
#!/usr/bin/python
# encoding: windows-1252

deHelpQryStr = str(''' 
    INSERT INTO deHelp (
           text,
           tag,
           id
       )
       VALUES (
           'Dies ist die Anleitung der Emuse -App. Klicken Sie auf die Schaltfläche Links, um auf die Schaltfläche zur Hauptseite zurückzukehren, um die Sprachreproduktion zu suspendieren oder fortzusetzen. Klicken Sie auf die rechte Schaltfläche. Die Emuse -App besteht aus 5 Seiten, jeweils ihren eigenen Titel oben sichtbar. Diese Version, die für das Gramsci Birthplace Museum in Ales angepasst wurde, umfasst die Funktionen von Audioguida, gleichzeitige Übersetzung, Navigation und Hilfe. Alle Funktionen sind im Hauptmenü zugänglich, indem Sie auf die jeweilige Schaltfläche klicken. Die Real -Time -Übersetzungsfunktion ist nur aktiv, indem sie sich im und in der Nähe des Museums befinden, während die anderen Funktionen immer aktiv sind. Wenn Sie oben auf die erste Schaltfläche klicken, greifen Sie auf die Funktion des Audiohandbuchs zu, die die Kamera aktiviert. Im Museum wurden QR -Codes in der Nähe der Interessenspunkte ähnlich wie beim Herunterladen der App gescannt. Durch die Rahmung eines QR -Codes wird die Reproduktion des Audios in Bezug auf die Arbeit, auf die sie sich bezieht, aktiviert. Wenn Sie auf die zweite Schaltfläche klicken, überfahren Sie in Echtzeit zur Seite der Vokalübersetzungsfunktion. Wenn Sie auf die Schaltfläche links klicken, wählen Sie hier Ihre Zunge aus und klicken Sie kurz auf die zentrale Rolle. Übersetzen. Die Sprache, in der Sie übersetzen möchten, ist immer italienisch. Die Audio -Reproduktion in der übersetzten Sprache beginnt, wenn sie zum Sprechen endet. Für eine gute Operation der Übersetzung ist es notwendig, ohne lange Unterbrechungen zwischen den Wörtern oder den nachfolgenden Sätzen zu sprechen. Im Hauptmenü wird durch Klicken auf die dritte Schaltfläche die Navigationsfunktion aktiviert. Das Ziel ist mit den Koordinaten des Museums voreingestellt. Wenn Sie auf die zentrale Schaltfläche klicken, beginnt die Navigation. Indem Sie kurz auf das grüne Signal klicken, werden die Koordinaten und die ungefähre Adresse dessen, wo Sie sich befinden, angezeigt. Indem Sie kurz auf das rote Signal klicken, erscheinen die Koordinaten und die Adresse des Museums. Wenn Sie lange auf das rote Zeichen klicken, werden die grundlegenden Informationen des Museums angezeigt. Mit dem Navigator können Sie die beste Route zwischen der Position, in der Sie sich befinden, und dem Museum berechnen, indem Sie die Transportmittel zwischen Auto, Fahrrad zu Fuß und für die behinderten Rollstühle auswählen. Wenn Sie mit dem Fragepunkt auf die letzte Schaltfläche klicken, wird dieser Text angezeigt, der ebenfalls gelesen wird. Klicken Sie links auf die Schaltfläche, um das Lesen oder auf die rechts auf die Seite zu beenden, um die Seite zu beenden.',
           'help',
           1
       ),
       (
           'Die Emuse unterstützt nicht die Sprache auf Ihrem Smartphone. Bitte wählen Sie eine der unterstützten Sprachen, indem Sie auf die entsprechende Schaltfläche klicken.',
           'lang',
           2
       ),
       (
           'Wählen Sie die Sprache, in der Sie Ihre Stimme übersetzen möchten, indem Sie auf die entsprechende Schaltfläche klicken.',
           'langTo',
           3
       ),
       (
           'Willkommen in Emide. Wenn Sie die App zum ersten Mal verwenden, empfehle ich Ihnen, mit dem Fragestalk auf die Schaltfläche zu klicken, die Ihnen bei der ersten Verwendung hilft. Wenn Sie andererseits die App bereits kennen, um die Audiohandbuch zu verwenden, klicken Sie auf die erste Schaltfläche oben, für den gleichzeitigen Übersetzer im zweiten, für den Navigator auf dem dritten.',
           'main',
           4
       ),
       (
           'Audioguide',
           'guideTitle',
           5
       ),
       (
           'Hilfe',
           'helpTitle',
           6
       ),
       (
           'Hauptmenü',
           'mainTitle',
           7
       ),
       (
           'Navigator',
           'navigatorTitle',
           8
       ),
       (
           'Übersetzer',
           'translatorTitle',
           9
       );
    ''', "cp1252")
#---------------------------------------------------------------------------

但是当Python解释器加载字符串时,会产生以下错误:
语法错误:(unicode错误)'utf-8'编解码器无法解码位置178中的字节0xe 4:无效连续字节
我该怎么做才能正确使用这个字符串?谢谢,马西莫

ltqd579y

ltqd579y1#

# encoding: windows-1252声明了 source file 的编码,并且必须是文件的第一行或第二行(参考PEP 263 - Defining Python Source Encodings)。该文件必须实际保存在Windows-1252中才能与声明匹配。或者,以UTF-8编码保存文件,这是Python 3源文件所需的默认编码,并删除# encoding行。
此外,#!/usr/bin/python行应该是文件中有效的第一行。
不需要str(..., encoding='cp1252')。这通常会将Windows-1252中编码的字节字符串转换为Unicode字符串,但您的字符串已经是Unicode字符串。

相关问题