저는 현재 MySQL 데이터베이스를 사용하고 있으며 데이터베이스를 유지 관리했던 이전의 사람은 캐릭터 세트를 ISO-8859-1에서 UTF-8로 변경했습니다. 이제 모든 ä가 ¤로 변하는 문제가 있습니다. 이제 전체 데이터베이스의 모든 레코드를 변경하는 코드를 작성했습니다. 그러나 분명히 정확하게 쓰여진 단어가 있습니다. 예를 들어 Pöytäkrono
과 같은 단어와 Sisäänkirjautuminen
과 같은 단어가 있습니다. iconv('UTF-8', 'ISO-8859-1', Pöytäkrono)
을 사용하면 Pöytäkrono
, 이라고 표시되지만 iconv('UTF-8', 'ISO-8859-1', Sisäänkirjautuminen)
을 사용하면 S
이됩니다. 데이터베이스가 상당히 커서 자동으로 처리하기를 원합니다.하지만 철자가 틀린 단어는 잘못된 것만 바꾸고 싶지는 않습니다.어떻게 PHP를 사용하여 mysql 데이터베이스의 문자 집합을 바꿀 수 있습니까?
0
A
답변
0
데이터베이스 저장 인코딩을 변경할 수 있으며 데이터베이스 은 문자열을 UTF-8로 저장한다는 점에서 작동합니다. 이것은 당신에게 아무것도 사지 않습니다.
뿐만 아니라 변경해야 할 것들 :
텍스트 편집기 인코딩이 UTF-8로 설정해야합니다. 소스 코드에있는 PHP 문자열에는 텍스트 편집기가 설정된 인코딩이 있습니다.
데이터베이스 < - 아마 코드에 존재하지 않는> PHP 전송 인코딩, ISO-8859-1 기본값 때문이다. UTF-8의 경우 쿼리를 만들기 전에 명시 적으로
mysql_set_charset("utf8")
을 호출해야합니다.- 웹 사이트 인코딩 선언은 기본적으로 ISO-8859-1입니다. 명시 적으로
header("Content-Type: text/html; charset=UTF-8")
을 호출하거나 아파치를 자동으로 구성해야합니다.
+0
하지만 UTF-8에는 ä 또는 ö를 저장하거나 표시 할 수 없다는 문제가 있습니다. $ regex = "(([äöÄÖa-zA-Z0-9] * + \ s *) +) "; 이것은 올바르게 표시되는 값을 처리하지만 여전히 잘못된 값을 변경할 수 있습니다. – user1806834
MySQL은 배우 중 하나 일뿐입니다. [UTF-8 끝까지 읽으십시오] (http://stackoverflow.com/questions/279170/utf-8-all-the-way-through) –
데이터베이스에 * 망가진 데이터가있는 * 일부 데이터가 있습니다. 당신은 * 올바른 * 데이터를 가지고 있습니까? 또는 [웹 응용 프로그램에서 유니 코드 앞면을 처리하는 방법] (http://kunststube.net/frontback/)이 도움이됩니까? – deceze