문제

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 변경이 손실됩니다.

인사 라파엘

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top