Django 에 나타 난 'ascii' codec can 't encode characters in position... 의 해결 방법

어제 서버 공간 을 샀 는데, 서버 가 외국 에 있 기 때문에 운영 체제 가 영문 버 전의 Ubuntu 11 이 므 로, 많 든 적 든 인 코딩 문제 에 부 딪 힐 수 있다
오늘 문 제 는 중국어 이름 이 있 는 사진 을 올 렸 을 때 다음 과 같은 오류 가 발생 했 습 니 다. "'ascii' codec can 't encode characters in position 50 - 52: ordinal not in range (128)" 는 언어 팩 이 설치 되 어 있 지 않 은 줄 알 고 중국어 간 체 언어 팩 을 돌 렸 습 니 다.
sudo apt-get install language-pack-zh-hans

집행 후에 도 여전히 안 되니, 이 제 는 두서 가 없다.
인터넷 에서 검색 하여 다음 과 같은 몇 가지 해결 방법 을 시도 했다.
1. 더하기
import sys
reload(sys)
sys.setdefaultencoding('utf-8')

결국 실패
2. Python 27 의 site - package 에 파일 을 추가 하고 설명 합 니 다.
import sys
reload(sys)
sys.setdefaultencoding('utf-8')

결국 안 돼.
해결 방법:
마지막 으로 django 홈 페이지 에서 bug 를 보 았 습 니 다. 바로 이 일 입 니 다.https://code.djangoproject.com/ticket/6009
그 후에 stackoverflow 에서 해결 방법 을 찾 았 습 니 다.
http://stackoverflow.com/questions/3715865/unicodeencodeerror-ascii-codec-cant-encode-character
1. 아파 치 설정:
/ etc / apache 2 / envvars 파일 에 추가:
export LANG='en_US.UTF-8'
export LC_ALL='en_US.UTF-8'

2. Nginx 설정:
nginx. config 의 http {.} 중간 에 추가:
charset  utf-8;

마지막 으로 apache 를 다시 시작 하고 nginx 를 다시 시작 하면 모든 것 이 해결 되 었 습 니 다. 예!
판권 소유.본 BLOG 에 있 는 모든 글 을 옮 겨 실 으 려 면 하이퍼링크 형식 으로 출처 를 밝 혀 주 십시오.

좋은 웹페이지 즐겨찾기