呵呵,好吧,所以我有編碼這個大問題,我只是不知道如何處理它。經過兩天的谷歌搜索,我認爲我只是用完了選項:)Python中的Unicode問題
我想要做的是以下幾點。在一個文本框
- 文本放在網站
- 在將文本發送到後端(Python編寫)爲
- 使用文本創建:
一個。 PIL中的圖像。 b。 MySQL中的條目。
現在,當我們談論普通字符時,所有這些工作都很流暢。但是當我嘗試使用韓文,波蘭文,日文字符時,我在圖像和數據庫中都插入了非常奇怪的外觀字符。在下面的例子中,我將使用三個字符的波蘭字符串 - 「ąść」。
這是我在谷歌搜索之後所做的。
插入.htaccess中的以下內容:
我的MySQL數據庫的#!/usr/bin/python
# -*- coding: utf-8 -*-
所有被編碼在 「utf8_unicode_ci」:
AddCharset UTF-8 .py .css .js .html
我的Python文件現在開始。
現在,這裏的什麼,我試圖做...一個例子每當我解析「ASC」(三級波蘭字符)它被保存在數據庫中,生成的圖像上顯示爲:
ąść
現在有幾個調試問題。我直接進入Python,並將以下內容分配給通常具有文本解析的變量(value_text1)(因此 - 沒有文本解析,只需設置固定文本以生成圖像並將其放入數據庫中):
A)如果我使用value_text1 = 'ąść'
,那麼我會得到…ść
。
B)如果我去value_text1 = u'ąść'
我收到以下錯誤信息:
UnicodeEncodeError: 'latin-1' codec can't encode characters in position 0-1: ordinal not in range(256)
C)如果我有value_text1 = u'ąść'.encode('UTF-8')
去我得到…ść
結果。 D)如果我用value_text1 = u'\u0105\u015B\u0107'.encode('UTF-8')
去,其中"\u0105\u015B\u0107"
是「ąść」的實際Unicode,我得到…ść
作爲結果。
真的不知道我在做什麼錯 - 服務器設置,python文件設置,錯誤的命令?將欣賞任何想法,預先感謝你。
你是如何渲染你的文字在PIL? – nneonneo
你從哪裏得到錯誤信息?什麼是引發錯誤信息的代碼? – BrenBarn
也許你的編輯器沒有在utf-8中保存非ASCII字符。 – thkang