2011-05-30 74 views
1

我有問題,當我試圖添加圖片不僅通過管理界面ascii字符。Unicode在Django管理

它似乎總是在嘗試轉換圖片的文件的名稱爲ASCII:

UnicodeEncodeError at /admin/app/subpicture/add/ 
     ('ascii', u'/home/celtrun/rails/alphasteel/public/media/my_media/subpictures/Zdj\u0119cia_iPhone_wrzesie\u0144_320.jpg', 68, 69, 'ordinal not in range(128)') 
Request Method: POST 
Django Version: 1.3 
Exception Type: UnicodeEncodeError 
Exception Value:  
('ascii', u'/home/celtrun/rails/alphasteel/public/media/my_media/subpictures/Zdj\u0119cia_iPhone_wrzesie\u0144_320.jpg', 68, 69, 'ordinal not in range(128)') 
Exception Location: /bin/python-2.6.1/lib/python2.6/genericpath.py in exists, line 18 
Python Executable: /bin/python-2.6.1/bin/python 

和:

Unicode error hint 

The string that could not be encoded/decoded was: s/Zdjęcia_i 

的結果是,我儘量保存圖片不顯示在指定的存儲庫。如果圖片的名稱在文件名中沒有unicode字符,則該圖片的文件將保存在此存儲庫中。 有人有任何想法來解決這個問題嗎?

+0

你忘了解釋你在做什麼。 – 2011-05-30 00:13:25

+0

現在已經很清楚了嗎?對不起,如果沒有,但我只是試圖做到這一點是保存圖片文件,並顯示它的名稱在管理界面。文件名稱具有Unicode字符。 – krzyhub 2011-05-30 00:23:26

+0

是的,現在它是有道理的。但我仍然沒有解決方案,對不起。 – 2011-05-30 00:24:04

回答

4

2年後,我遇到了與CentOS6.4和Django 1.5相同的問題。

雖然我搜索解決方案,但我認爲即使上傳帶有特殊字符的文件,我可能會遇到與其他應用程序有關的問題。所以我試了this。使用ASCII文件比使用unicode名稱更好。不是每個程序都支持ığüşöçâİ或字體。它也可能導致網站中的字體問題。

0

Ubuntu/* nix上的默認Apache環境不允許使用非ASCII文件名。這導致 相當不直觀UnicodeEncodeError當在Django admin中的文件域/圖像域 中提交unicode文件名時。

嘗試增加這Apache的配置(/etc/apache2/envvars):

export LANG='en_US.UTF-8' 
export LC_ALL='en_US.UTF-8' 

然後重新啓動Apache服務器。

+0

謝謝,但在我的服務器我有mod_passenger與文件passenger_wsgi.py和沒有像「etc/apache2/envvars」目錄。 – krzyhub 2011-06-09 18:16:04

+2

我試過這種方法,似乎沒有按預期工作。我已重新啓動apache,但在使用unicode字符保存文件時仍然出現unicode錯誤 – espenhogbakk 2011-09-01 14:16:15

+0

可能是Web服務器網關的問​​題。在我的情況下,它是gunicorn。他們不會允許除「ASCII」外的其他任何內容。 – 2017-11-29 09:56:09