MySQL 데이터베이스에서 Charachers 교체
문제
LATIN1 데이터베이스에서 UTF-8로 큰 PHPBB3 데이터베이스를 전송했습니다. 이제 데이터베이스의 "이상한"문자를 변경해야합니다. 어제 나는 작동하는 방법을 찾았다. 이제 더 이상 그것을 찾을 수 없다. 나는 시도했다.
update phpbb_topics set topic_title = replace(topic_title, 'Ã', 'à');
update phpbb_topics set topic_title = replace(topic_title, 'è', 'è');
기본적으로 나는 테이블 필드의 모든 '캐릭터를'등으로 변경해야합니다.
어떻게 할 수 있습니까?
감사
해결책
phpbb_topics 업데이트 set topic_title = replace (replace (topic_title, 'Â', 'è'), 'ã', 'à');
질문에 따라 스스로 대답해야합니다.
- 데이터베이스에 저장된 바이너리 데이터 (ascii () 함수 사용 또는 덤프 파일로 선택)
- 이진 데이터가 클라이언트에게 전송되는 것 (항상 저장된 것과 동일하지는 않습니다)
- 클라이언트가 어떻게 수신 된 이진 데이터를 표시합니까? (다른 클라이언트와 다른 옵션을 시도하십시오)
다른 팁
나는 그것을 .SQL 파일에 버린 다음 chars를 sed 또는 텍스트 편집기로 교체합니다 (파일이 크지 않은 경우). 그 후 당신은 스크립트를 다시 실행합니다. 어쩌면 데이터베이스에서 직접 수행 할 수있는 방법이있을 수 있지만 모르겠습니다.
내 솔루션의 문제는 원자가 아니라는 것입니다. 덤프와 재 삽입 사이의 DB 변경이 손실됩니다.
인사 라파엘
제휴하지 않습니다 StackOverflow