2012-02-20 62 views
0

我正在使用Javascript和數據庫在Python程序中工作。我在管理書面口音標記方面遇到了一些問題(á,é,í,ó,ú)。首先,我的程序顯示一些文本輸入,以便用戶寫入信息。當用戶點擊一個「ACCEPT」按鈕時,一個javascript會將該信息發送給另一個將要將該信息保存在數據庫中的python程序。用戶下次輸入時,將顯示保存在數據庫中的信息而不是文本輸入。在字符串中表示重音

我的問題是當信息上有任何重音標記。起初我雖然這是一個JavaScript問題,所以我開始工作替換功能。然後我看到信息被保存在帶重音符號的數據庫中,所以問題不在於javascript函數或數據庫。

這些信息是從數據庫中獲取的,它顯示了重音符號。然後,一個JavaScript將獲取該值,如果我將該值設置爲一個警報,它將非常好地顯示重音標記。該JavaScript將帶有AJAX的URL發送給另一個python程序。這個python接收這個值,但是當打印它時,它被修改。重音標記不再顯示,而是一個小方塊。我收到的值與此代碼(我一直在使用很多次):

form = cgi.FieldStorage() 
area = form.getfirst("area") 

於是我又開始蟒蛇品嚐替換功能更改字符到apropiate重音符號。我一直在嘗試這樣的:(012)。但它不起作用。

我也有這個在我的程序:# -*- coding: iso-8859-1 -*-它適用於特殊字符。

我需要找出python代表重音的方式,以便我可以替換它們。

+2

我建議不要使用utf-8以外的任何'coding'聲明。 – Daenyth 2012-02-20 17:09:48

+4

[絕對最低每一個軟件開發人員絕對,積極必須知道的關於Unicode和字符集(沒有藉口!)](http://www.joelonsoftware.com/articles/Unicode.html) – georg 2012-02-20 17:11:52

+0

@Daenyth哪一個? – mauguerra 2012-02-20 17:43:32

回答

3

你需要備份在這裏。

設置UTF-8編碼(# -*- coding: utf-8 -*-),並使用與unicode配合使用的編輯器。

聲明你的常量,並且通常使用像unicode字符串,如u'hélas'

就像使用魔術一樣,只要數據庫能夠正確處理unicode,確保它可以正常工作。

+0

但我已經有utf-8編碼(# - * - coding:utf-8 - * - )。我需要改變那裏的東西嗎? – mauguerra 2012-02-20 17:23:32

+1

@mauguerra:在你的問題中,你說你的編碼設置爲iso-8859-1。 utf-8是要走的路,但要確保你的編輯器運行在utf-8模式下。 – Marcin 2012-02-20 17:27:02

+0

我正在使用以utf-8模式運行的編輯器。你知道還有什麼可以的嗎?非常感謝 – mauguerra 2012-02-20 17:41:59

1

如果你的數據在數據庫中確定,但它看起來爭相Python程序,有可能是與數據庫建立連接的方式有問題。在你重新安排你的工作環境之前,我會調查一下。 (但也請閱讀該Unicode參考)。