2012-02-06 3 views
4

DB를 만들고 Mysqldb를 사용합니다.
데이터 문자 유형을 삽입하고 선택하려고합니다. 그 문자는 그리스어로되어 있습니다.
utf-8_general_ci에서 데이터베이스의 데이터 정렬을 설정했지만 그리스어 단어를 삽입 할 때 이상한 문자가 표시되면 파이썬을 통해이 테이블의 행을 선택하려고합니다.이 결과는 (1,??????)입니다.mysqldb에서 그리스 단어를 삽입하고 선택하는 방법

는 사람이 제발 도와 드릴까요? 감사합니다

답변

2

:

set character_set_database = utf8; 
set character_set_server = utf8; 
set character_set_system = utf8; 
set collation_database = utf8_general_ci; 
set collation_server = utf8_general_ci; 
set names utf8; 

을 설정하거나 그리스 문자를 사용 :-)

파이썬 :

print (yourStringFromDatabase).encode("iso-8859-1") 
:
db = MySQLdb.connect(host="localhost", 
use_unicode = True, charset = "utf8", 
user=username, passwd=password, db=database) 

그리고 출력에, 당신은 문자열을 지정할 필요는 유니 코드

+0

파이썬에서 예제를 보여 주면이 모든 것을 사용하는 방법이 가장 좋을 것입니다. – TLSK

+0

@TLSK 가야합니까? – Max

+0

이제 (1, u '\ u0391 \\ u0395 \ ...)와 같은 것을 택하십시오. – TLSK

2

파이썬의 측면에서 유니 코드를 사용하고 있습니까?

비밀 구성 요소는 연결에 매개 변수에 charset = "utf8"을 추가하고 use_unicode = True로 설정합니다. Source

db = MySQLdb.connect(host=DB_HOST, user=DB_USER, passwd=DB_PASS, db=DB_NAME, charset="utf8", use_unicode=True) 

파이썬 3에서 유니 코드 문자열은 이전 버전의 규범을하는 동안, 이후 계속, 유니 코드 문자열과 문자열이 다른 것들, 있습니다. 인코딩에 문제가, 파이썬에서 UTF8을 설정해야합니다 및 DB 설정하려고 가능성이있다

+0

답변 해 주셔서 감사합니다. – TLSK

관련 문제