2017-12-04 3 views
0

MySql 데이터베이스에서 데이터를 읽으려고합니다. 악센트 또는 문자 'ñ'가 포함 된 단어를 수신해야하는 경우를 제외하고 모두 정확합니다.RIDE를 사용하여 MySql에서 데이터 가져 오기

데이터베이스의 데이터 정렬을 검토했습니다. utf8_unicode_ci 테이블 및 열에 구성되어 있습니다.

저는 파이썬 2.7.8을 사용합니다. 디코드 및 유니 코드를 시도 했으므로 테이블 결과를 잘 쓸 수 없습니다. 난 항상 얻을 :

BANO -> 바 \를

얇은 xf1o -> L의 \ xe1mina

내가 RIDE (1.5.2.1)에서 쿼리를 실행 윈도우 10

어떤 아이디어가 아래?

감사합니다.

답변

1

어떻게 "수신합니까?" ñ, 16 진수 e1으로 인코딩 된 경우 latin1으로 인코딩됩니다. (실제로는 cp1250, dec8, latin1, latin2, latin5 중 하나이지만 MySQL의 기존 기본값이기 때문에 latin1 일 가능성이 높습니다.)

클라이언트에 실제로 e1가있는 경우 latin1을 가지고 있다고 MySQL에 알리십시오. 데이터베이스 테이블을 utf8로 설정하면됩니다. MySQL은 상점/페치를 수행함에 따라 음역 할 것입니다.

어디서나 utf8을 사용하는 것이 좋습니다. 여기

파이썬에 내 노트입니다 : 그 부분은 사용 할 것 오래된 파이썬 2.7에 문제에 대한 링크와 함께 끝나는 http://mysql.rjweb.org/doc.php/charcoll#python 참고 : Flask_SQLAlchemy, MySQL, store Swedish characters å, ä, ö?

+0

가 대단히 감사합니다, 다음과 같은 링크가있다 매우 유용했습니다 : http://mysql.rjweb.org/doc.php/charcoll#python 여기에 dbcharset = 'utf8'을 연결에 추가해야한다는 것을 알았습니다. 이것으로 문제는 해결되었습니다. 악센트가 있고 'ñ'가있는 MySQL 문자를 올바르게 받았습니다. 감사합니다. – Marta79

+0

@ Marta79 - 다행히 링크가 도움이되었습니다. 아아, 링크는 사물의 혼란입니다. '잘못된 것이있어?' 다시 배열해야합니까? 다른 비판? (나는 파이썬을 사용한 적이 없다.) –

관련 문제