簡體   English   中英

Python中的Unicode問題

[英]Unicode problems in Python

嗯,好的,所以我在編碼方面遇到了很大的問題,我只是不知道如何處理。 經過兩天的Google搜索,我認為我的選擇已經用光了:)

我想做的是以下幾點。

  1. 將文本放在網站上的文本框中
  2. 將文本發送到后端(用Python編寫)
  3. 使用文本創建:
    一種。 PIL中的圖像。
    MySQL中的一個條目。

現在,當我們談論常規字符時,所有這些都可以順利進行。 但是,當我嘗試使用韓文,波蘭文,日文字符時,在圖像和數據庫中都插入了看起來很奇怪的字符。 在下面的示例中,我將使用波蘭語字符的三個字符串-“ąść”。

這是谷歌搜索后我所做的事情。

在.htaccess中插入以下內容:

AddCharset UTF-8 .py .css .js .html

我的python文件現在開始於:

#!/usr/bin/python
# -*- coding: utf-8 -*-

我所有的MySQL數據庫均以“ utf8_unicode_ci”編碼。

現在,這是我要執行的操作的一個示例...每當我解析“±ść”(三個波蘭語字符)時,它將被保存在數據庫中並在圖像上生成為:

ąść

現在,一些調試問題。 我直接使用Python,並將以下內容分配給通常對其文本進行了解析的變量(value_text1)(因此-不進行文本解析,只需設置固定文本即可生成圖像並放入數據庫中):

A)如果我使用value_text1 = 'ąść'得到…ść

B)如果我使用value_text1 = u'ąść'value_text1 = u'ąść'收到以下錯誤消息:

UnicodeEncodeError:'latin-1'編解碼器無法在位置0-1處編碼字符:序數不在范圍內(256)

C)如果我使用value_text1 = u'ąść'.encode('UTF-8') ,結果得到…ść

D)如果我使用value_text1 = u'\ą\ś\ć'.encode('UTF-8') ,其中"\ą\ś\ć"是“±ść”的實際unicode,則得到…ść結果是…ść

真的不知道我在做什么錯-服務器設置,python文件設置,錯誤的命令? 將不勝感激,在此先感謝您。

如果我在交互式外殼程序或.py文件中嘗試

#!/usr/bin/python
# -*- coding: utf-8 -*-
value_text1 = u'ąść'
print value_text1

它對我來說效果很好,所以我想這與您的服務器配置有關。

順便說一句,請確保在連接到服務器時使用charset =“ utf-8”。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM