2012-06-03 3 views
2

나는 오픈 소스 PHP 웹 사이트를 가지고 있으며 일본어 사용자가 사용할 수 있도록 수정/대부분의 상수 문자열을 변환하려고합니다.Python 프로그래머 용 PHP : UTF-8 문제

원래 코드는 PHP + MySQL의 + 아파치와 내가, 예를 들어, 단어가 일본어 대응으로 "ロ グ イ ン"등

내가하지 "로그인"변경하려는 charset=utf-8

영어로 작성하다 반드시 파이썬처럼 utf-8 형식으로 PHP 코드를 저장해야만 하는가?

나는 파이썬에 대한 경험이 있기 때문에, 내가해야 할 다른 문제는 무엇인가?

+0

경고 : 두통을 원한다면 기본 PHP5 ini 파일에 대해서는 아무 것도 변경하지 마십시오. 디폴트는 UTF-8을 잘 처리한다. – Nathan

답변

2

파일에있는 경우 파일을 UTF-8로 저장해야합니다.

데이터베이스에있는 경우 PHP 파일을 UTF-8로 저장할 필요가 없습니다.

PHP에서 문자열은 기본적으로 이진 블롭입니다. 올바른 바이트를 읽을 수 있도록 파일을 UTF-8로 저장해야합니다. 이론적으로 원시 바이트를 ANSI 파일에 저장 한 경우 여전히 브라우저에 올바르게 출력되지만 편집기에서는 표시하지 않습니다 올바르게, 그리고 그것을 잘못 조작 한 편집자의 위험을 감수해야합니다.

또한 ANSI가 아닌 문자열을 처리 할 때는 문자열 조작 함수의 멀티 바이트 버전을 사용하는 것이 좋습니다 (예를 들어 str_replace는 utf-8 문자열과 유사 할 수 있습니다).

0

파일에 UTF-8 문자가 포함되어 있으면 UTF-8로 저장하십시오. 그렇지 않으면 어떤 형식 으로든 저장할 수 있습니다. PHP 인터프리터는 UTF-8 바이트 순서 표를 지원하지 않으므로 PHP 인터프리터는 UTF-8 바이트 순서 표를 지원하지 않는다는 점을 명심해야한다.

0

죄송합니다. 파이썬을 사용한 후에 PHP를 사용해야합니다.

PHP에는 문자 집합에 대한 개념이 없습니다. 모든 문자열은 구문 분석 된 PHP 코드에서도 바이너리이므로 PHP 문자열에 UTF-8 멀티 바이트 문자를 포함하는 경우 코드 파일의 바이트가 UTF-8인지 확인하십시오 바이트.

신청서의 모든 단계에서 extremely careful with the use of string functions이어야합니다. 또한 MySQL 연결이 UTF-8 (또는 이후 버전의 PDO에서 charset dsn 매개 변수 사용)을 사용하도록 설정되어 있고 mysql 문자열 열 데이터 유형이 utf-8 저장소를 사용하는지 확인해야합니다.