MySQL과 PHP : 키릴 문자가있는 UTF-8
PHPMySQL과 PHP : 키릴 문자가있는 UTF-8
MySQL 테이블에 키릴 문자 값을 삽입하려하지만 인코딩 문제가 있습니다.
PHP :
<?php
$servername = "localhost";
$username = "a";
$password = "b";
$dbname = "c";
$conn = new mysqli($servername, $username, $password, $dbname);
mysql_query("SET NAMES 'utf8';");
mysql_query("SET CHARACTER SET 'utf8';");
mysql_query("SET SESSION collation_connection = 'utf8_general_ci';");
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "UPDATE `c`.`mainp` SET `search` = 'test тест' WHERE `mainp`.`id` =1;";
if ($conn->query($sql) === TRUE) {
}
$conn->close();
?>
MySQL :
| id | search |
| 1 | test ав |
참고 : PHP 파일은 utf-8, 데이터베이스 데이터 정렬 utf8_general_ci입니다.
해결법
-
==============================
1.실제 문제는 어딘가에 문자 세트 문제입니다. 다음은 애플리케이션에 적합한 문자 세트를 얻을 수있는 몇 가지 지침입니다. 이것은 PHP / MySQL 애플리케이션을 개발할 때 발생할 수있는 일반적인 문제의 대부분을 다룹니다.
실제 문제는 어딘가에 문자 세트 문제입니다. 다음은 애플리케이션에 적합한 문자 세트를 얻을 수있는 몇 가지 지침입니다. 이것은 PHP / MySQL 애플리케이션을 개발할 때 발생할 수있는 일반적인 문제의 대부분을 다룹니다.
전체 코드 파이프 라인의 모든 부분을 UFT-8로 설정해야합니다. 그렇지 않으면 응용 프로그램에서 깨진 문자가 발생할 수 있습니다.
이 목록 외에도 charset을 지정하기위한 특정 매개 변수가있는 함수가있을 수 있습니다. 설명서에서 이에 대해 알려줍니다 (예 : htmlspecialchars ()).
멀티 바이트 문자에 대한 특수 함수도 있습니다. 예를 들면 : strtolower ()는 멀티 바이트 문자를 낮추지 않습니다. mb_strtolower ()를 사용해야하므로,이 라이브 데모를 참조하십시오.
mysql과 PDO로 UTF-8 설정하기
-
==============================
2.해결책:
해결책:
mysql_query ( "SET NAMES 'utf8';"); > $ mysqli-> set_charset ( 'utf8');
from https://stackoverflow.com/questions/31897407/mysql-and-php-utf-8-with-cyrillic-characters by cc-by-sa and MIT license
'PHP' 카테고리의 다른 글
사람들이 플래시 게임의 PHP 기반 최고 점수 테이블을 해킹하는 것을 막는 가장 좋은 방법은 무엇입니까? (0) | 2018.09.12 |
---|---|
Big-O for PHP 함수 목록 (0) | 2018.09.12 |
Woocommerce 3에서 주문 항목 및 WC_Order_Item_Product 가져 오기 (0) | 2018.09.12 |
"경고 : 헤더 정보를 수정할 수 없습니다 - 이미 보낸 헤더"error [duplicate] (0) | 2018.09.12 |
"<! DOCTYPE>"전에 여러 UTF-8 BOM 시퀀스를 제거하는 방법? (0) | 2018.09.12 |