PHP 애플리케이션을 새 서버로 옮겼습니다. 나는 mysql5 db를 사용한다. 업데이트 또는 DB에 뭔가를 삽입 할 때마다 "
및 -
기호가 ?
으로 변경되었습니다. SET NAMES UTF8
과 SET CHARACTER SET
을 사용하지만 작동하지 않습니다. 어떤 아이디어?mysql and encoding
답변
내 생각 엔 당신은 각진 꽤 따옴표로 "
변환되는 텍스트 편집기에서 붙여 넣기 및 변화하는 당신의 -
모두 ?
로 표현되는 원인이되는 mdash,에.
UTF8 문자를 허용하도록 데이터베이스를 설정하는 동안 웹 서버/PHP에서 해당 문자를 허용하도록 설정하지 않았을 것입니다. mbstring
기능을 사용해보십시오. 그러나 기울어 진 따옴표 나 대시를 사용하지 않았는지 확인하십시오.
SET NAMES UTF8
은 모든 페이지에서 선택하거나 업데이트하거나 삽입 할 때 사용해야합니다.
실제로이 쿼리는 데이터베이스에 연결할 때마다 사용해야합니다. 코드를 연결하기 만하면됩니다.
이(1) 브라우저가 당신에게 UTF로 인코딩 된 문자를 전송하는지 확인하십시오 안정적으로 작동 및 기타 비 ASCII 문자 - ("")
그것은 everywere입니다, 나는 그것을 어디에나 포함 db_connect.php 파일에 있습니다. – qqryq
당신은 스마트 인용 및 대시를 만들기 위해를 통해 UTF-8 모든 방법이 필요합니다 -8. 양식을 UTF-8로 포함하는 페이지를 선언하여이 작업을 수행 :
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8">
...
. (IE에서 잘 작동하지 않습니다 <form accept-encoding>
을 무시)
(2) 원시 바이트 PHP 상품 및 그것들이 어떤 인코딩인지는 신경 쓰지 않지만 데이터베이스는주의를 기울이기 때문에 PHP의 바이트 인코딩이 무엇인지 알려줘야합니다. 이 바람직합니다. mysql_set_charset이 좋을 수도 있습니다.
(3) 일단 적절한 문자가 데이터베이스에 도달하면 모든 문자가 맞는지 확인하기 위해 유니 코드 인코딩으로 저장해야합니다. 각 열은 다른 인코딩을 가질 수 있지만, CREATE table
일 때 DEFAULT CHARACTER SET utf8
을 사용하면이 열의 모든 텍스트 열을 UTF-8로 사용할 수 있습니다. 원하는 경우 데이터베이스 또는 전체 서버의 기본 문자 집합을 utf8
으로 설정할 수도 있습니다.
이미 테이블이 CREATE
이고 비 UTF-8 데이터 정렬 인 경우 테이블을 다시 만들거나 alter해야합니다. SHOW FULL COLUMNS FROM sometable;
을 사용하여 현재 데이터 정렬을 확인할 수 있습니다.
(4) htmlspecialchars()
이 아닌 htmlentities()
이 아닌 PHP에서 출력 한 텍스트를 HTML 인코딩해야합니다. 기본적으로 비 ASCII 문자가 엉망입니다.
[(2) 및 (3)의 대안으로, 연결 및 테이블 저장소에 기본 Latin-1 인코딩을 사용하지만 UTF-8 바이트를 넣을 수 있습니다. 이 접근 방식의 단점은 데이터베이스를보고있는 다른 도구에서 잘못 보일 것이고 대/소문자가 대/소문자를 구분하지 않는 방식으로 서로 비교하지 않는다는 것입니다.
- 1. rails, mysql charsets & encoding : binary
- 2. OR 대 AND MySQL
- 3. mysql join and limit
- 4. mysql and or query
- 5. Masspay and MySQL
- 6. MYSQL Fulltext search and LIKE
- 7. php and mysql, best practices
- 8. Mysql "where"and "or"statement
- 9. Javamelody with Tomcat and MySQL
- 10. EJBQL/MySQL Regexes and IN
- 11. MySQL : unique and index equivalence
- 12. HttpWebRequest 및 Transfer-Encoding
- 13. PHPMailer Content-Transfer-Encoding
- 14. php javascript url encoding
- 15. NSURLConnection 및 Content-Encoding
- 16. PHP의 "Transfer-Encoding : chunked"헤더
- 17. Silverlight - WCF Enable Binary Encoding
- 18. Contextally structured and ordered MySQL 쿼리
- 19. 이미지 갤러리 관리자 for PHP and MySQL?
- 20. jQuery datepicker with php and mysql
- 21. SubSonic "Or"AND "AND"
- 22. mysql_real_escape_string and '
- 23. 브라우저 주소 표시 줄의 url-encoding
- 24. Perl에서 encoding pragma UTF 문자열을 사용합니다.
- 25. Encoding ™ for JSON 사용 - objective-c 사용
- 26. jquery and jScrollPane and ajax
- 27. Dotcover and StatLight
- 28. 동일한 MySQL 쿼리 도움말에서 WHERE, AND, OR 모두 사용
- 29. MySQL : 질문에 대한 SELECT WHERE AND OR OR
- 30. Adobe Air and PHP
다른 방법이 있습니다 이것을하기 위해? 내 PHP 배포판에 추가 패키지를 설치할 수 없으며 mbstring이 설치되지 않은 것 같습니다. – qqryq
잘 모르겠습니다. 따옴표를 변환하기 위해 HTML 인코딩을 시도해 볼 수도 있지만 아마도이 방법이 최선의 방법은 아닙니다. –