2009-11-10 5 views
0

일부 외부 API를 다루고 있으며 db에 저장할 때 일부 인코딩 오류가 발생합니다. 다루고있는 모든 콘텐츠는 유니 코드로되어 있습니다. mysql 인코딩은 ti latin1로 설정됩니다.mysql 인코딩 문제

로컬 시스템에서 정상적으로 작동하지만 서버에 오류가 발생합니다.

mysql> SHOW VARIABLES LIKE "character\_set\_database"; 
+------------------------+--------+ 
| Variable_name   | Value | 
+------------------------+--------+ 
| character_set_database | latin1 | 
+------------------------+--------+ 
1 row in set (0.00 sec) 

mysql> SHOW VARIABLES LIKE 'character\_set\_%'; 
+--------------------------+--------+ 
| Variable_name   | Value | 
+--------------------------+--------+ 
| character_set_client  | latin1 | 
| character_set_connection | latin1 | 
| character_set_database | latin1 | 
| character_set_filesystem | binary | 
| character_set_results | latin1 | 
| character_set_server  | latin1 | 
| character_set_system  | utf8 | 
+--------------------------+--------+ 
7 rows in set (0.00 sec) 

그리고 다음 나는 발생하는 오류입니다 : : 환경 사이의 유일한 차이점은 원격 서버에서 실행되는 반면 로컬 실행의 python2.6, python2.5

다음은 MySQL의 사양이 있다는 것입니다

Incorrect string value: '\xCB\x8Cs&ae...' for column 'content' at row 1 

인코딩 문제를 다시 다루지 않으려면 mysql 설정을 변경해야합니다.

답변

1

This post MySQL을 장고와 함께 사용하면 설정을 바로 잡을 수 있습니다.

1

첫 번째로, 유니 코드가 인코딩이 아니기 때문에 원본 데이터가 유니 코드에있을 수 없습니다. 대체로 utf-8 일 가능성이 큽니다.

오류를 생성하는 코드 또는 전체 추적을 표시하지 않으므로 어떤 일이 일어나는지 추측하기가 어렵습니다. 하지만 시도 할 수있는 한 가지 방법은 데이터베이스 문자 집합을 utf-8로 설정하는 것이고 이것이 도움이되는지 확인하는 것입니다.

+0

물론 유니 코드는 "utf-8"을 의미합니다. 나는 알고있다, 그 같은 것. 그러나 U가 그것을 올바르게 얻었던 이래로, 나는 생각한다, 그것은 좋았다. –