2009-09-22 21 views
1

我想創建簡單的圖表,例如在python餡餅和酒吧。圖表適當的Unicode支持

我嘗試了CairoPlotpycha。兩者看起來都很神奇,但他們似乎無法正確處理unicode字符。

CairoPlot.pie_plot(name='test.png', width=800, height=600, 
        data={'eins':100, 'zwei':48, 'drei':90, 'vier':98,u'fünf':187}) 

結果fünf而不是fünf

有一個易於使用的模塊,對Unicode公認的支持?還是你讓CairoPlotpycha正確顯示unicodes?

我更喜歡內部解決方案,因此谷歌的圖表是不是我想要的。

編輯

ironfroggy的回答讓我試試這個

CairoPlot.pie_plot(name='test.png', width=800, height=600, 
        data={'eins':100, 'zwei':48, 'drei':90, 'vier':98,'f\xc3\xbcnf':187}) 

這個工程。

什麼是轉換Unicode的字符串的ASCII字符串包含轉義非ASCII字符一個安全的方式?

編輯2

u'fünf'.encode('latin-1') 

的伎倆。謝謝!

編輯3

爲pycha它的工作以同樣的方式

dataSet = (        
    ('dataSet 1', ((0, 1), (1, 3), (2, 2.5))), 
    ('dataSet 2', ((0, 2), (1, 4), (2, 3))), 
    (u'dataSet Ü'.encode('latin-1'), ((0, 5), (1, 1), (2, 0.5))), 
) 
chart = pycha.bar.VerticalBarChart(surface) 
chart.addDataset(dataSet)     
chart.render() 
surface.write_to_png('output.png') 
+0

如果Unicode字符串不起作用,它的模塊中的錯誤,你正在使用,你應該報告它。如果他們真的需要latin-1編碼的字符串,他們應該很好地記錄下來。 – u0b34a0f6ae 2009-09-22 17:04:19

+0

我今天早些時候打開一張門票。 – vikingosegundo 2009-09-22 23:38:23

回答

1

小心包括非ASCII直接在您的源代碼。你在源代碼中包含編碼提示嗎?

#!/usr/bin/env python 
# -*- encoding: utf-8 -*- 

而且,當然,您確定您的編輯器正確地將文件保存在您認爲是的編碼中嗎?最安全的辦法是仍保持在ASCII源並做轉義非ASCII字符的Unicode字符串(如爲\ uXXXX XXXX是碼點)。

+0

unicode字符串來自mysql表。請參閱我的編輯。 – vikingosegundo 2009-09-22 15:45:31

1

嘗試使用第三方庫,以取代垃圾unicode的,我將竭誠爲您提供在專業的會診一