문제

하나의 응답 는 질문이 나는 어제 제안했지 확인해야 합 내 데이터베이스를 처리할 수 있 UTF-8 자습니다.어떻게 이것을 할 수 있 MySQL?

도움이 되었습니까?

해결책

업데이트:

짧은 대답니다-당신은 거의 항상 사용하여 utf8mb4 charset 고 utf8mb4_unicode_ci 데이터 정렬입니다.

을 변경하는 데이터베이스:

ALTER DATABASE dbname CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

보:

원래는 대답한다:

MySQL4.1 는 기본의 문자집합이 서로 다름 UTF-8 입니다.에서 이를 확인할 수 있습 h my.cnf 파일을 설정하도록 하십시오 모두 클라이언트와 서버(default-character-setcharacter-set-server).

이 있는 경우 기존 하고자 하는 데이터로 변환하 UTF-8,덤프의 데이터베이스에 가져와 다시 UTF-8 확인하기:

  • SET NAMES utf8 기 전에 당신은 쿼리/삽입하는 데이터베이스
  • DEFAULT CHARSET=utf8 을 만들 때 새로운 테이블
  • 이 점에서 MySQL 클라이언트와 서버에 있어야 UTF-8 일(참조하십시오 my.cnf).기억은 어떤 언어를 사용할(PHP)해야 합 UTF-8 니다.일부 PHP 버전이 자신을 사용 MySQL 클라이언트 라이브러리 되지 않을 수 있습니다 UTF-8 알고 있습니다.

하려는 경우 마이그레이션 기존 데이터를 기억하는 첫 번째 백업!의 많은 이상한 choping 할 수 있는 데이터의 일이 일어날 정상적으로 작동하지 않을 경우에는 계획한 대로!

일부 자원:

다른 팁

이'영',에 my.cnf:

[client]
default-character-set=utf8
[mysqld]
character-set-server = utf8

을 확인하는 클라이언트와 쇼의 몇 가지 변수:

SHOW VARIABLES LIKE 'character_set%';

는지 확인들은 모든 utf8, 를 제외하고, ..._filesystem, 야 binary..._dir, 는 점이 어딘가에서 MySQL 설치합니다.

MySQL4.1 은 기본 문자 설정하는 전화 utf8 하지만 실제로 일부만 UTF-8 일(수 있습만 세바이트 문자와 작게).

utf8mb4 귀하의 문자셋을 하려면"전체"UTF-8 입니다.

짧은 대답:사 utf8mb4 에서 4 장소:

  • 바이트에서 클라이언트는 utf8,지 않은 라틴 1/cp1251/등이 있습니다.
  • SET NAMES utf8mb4 거나 뭔가에 해당을 설정할 때 클라이언트의 연결하여 MySQL
  • CHARACTER SET utf8mb4 모든 테이블에/열--를 제외하고는 열을 엄격하게 ascii/hex/country_code/zip_code/등이 있습니다.
  • <meta charset charset=UTF-8> 는 경우에 당신은 출력하는 HTML.(네 맞춤법이 다릅니다.)

더 많은 정보 ;
UTF8 모든 방법

위 링크를 제공합"상세한 정규 대답를 해결하기 위해 필요한 모든 문제를".--이에 공간 제한한 이 포럼도 있습니다.

편집

CHARACTER SET utf8mb4 을 포함하는"모든"세계의 캐릭터 COLLATION utf8mb4_unicode_520_ci 은 논쟁의 여지가'최고의 모든 주위에'정렬이 사용합니다.(거기에 또한 터키어,스페인어 등 데이터 정렬하고자하는 사람들을 위해 뉘앙스에서 그들의 언어.)

Charset 은 데이터베이스의(기본)및 테이블.당신이 볼 수있(MySQL 명령):

show create database foo; 
> CREATE DATABASE  `foo`.`foo` /*!40100 DEFAULT CHARACTER SET latin1 */

show create table foo.bar;
> lots of stuff ending with
> ) ENGINE=InnoDB AUTO_INCREMENT=252 DEFAULT CHARSET=latin1

다시 말해서;그것은 아주 쉽게 확인하는 데이터베이스 charset 또는 변경:

ALTER TABLE `foo`.`bar` CHARACTER SET utf8;

문자를 변경하려면 설정 인코딩에 UTF-8 을 데이터베이스에 대한 자체,에서 다음 명령을 입력하 mysql>프롬프트가 표시됩니다.사 ALTER DATABASE..대체 DBNAME 데이터베이스 이름:

ALTER DATABASE DBNAME CHARACTER SET utf8 COLLATE utf8_general_ci;

이것은 중복의 이 질문 어떻게 변환하는 전체 MySQL 데이터베이스 characterset 과 콜레이션 UTF-8?

내가 다음에 하비에르의 솔루션이지만,추가 몇 가지 다른 라인에서 나.cnf:

[myslqd]
skip-character-set-client-handshake
collation_server=utf8_unicode_ci
character_set_server=utf8 

내가 찾은 이런 생각이 여기: http://dev.mysql.com/doc/refman/5.0/en/charset-server.html 에서 첫 번째/유일한 사용자에 코멘트 페이지 하단.그는 말 건너뛰기 캐릭터 설정된 클라이언트-악수 는 몇 가지 중요합니다.

팁에 MySQL 및 UTF-8 도움이 될 수 있습니다.불행하게도,그들은하지 않을 구성하는 전체 솔루션 공통 주의 사항.

database collation 하기 UTF-8 그 적용 table collation 를 데이터베이스의 기본입니다.

당신의 대답은 구성할 수 있습해서 MySql 설정합니다.에 내가 응답할 수 있 무언가가 간의 컨텍스트 그러나 이것은 또한 알아에 대한 도움말입니다.
을 구성하는 방법 Character SetCollation.

을 위한 응용 프로그램 데이터를 저장하는 기본값으로 사용하 MySQL 캐릭터 설정 과 콜레이션(latin1, latin1_swedish_ci),특수하게 구성할 필요가 없습니다 해야 될 필요합니다.는 경우 어플리케이션에 필요한 데이터를 사용하여 스토리지 다른 캐릭터 설정하거나 정렬,구성할 수 있습니다 캐릭터 설정 한 정보를 여러 가지 방법:

  • 지정한 문자 설정 데이터베이스당. 예를 들어,응용 프로그램 중 하나를 사용하는 데이터베이 필요할 수 있습니다 utf8, 반면,응용 프로그램 사용하는 다른 데이터베이스가 필요할 수 있습 sjis.
  • 지정 캐릭터 설정은 서버를 시작합니다. 그러면 서버 을 사용하여 지정된 설정을 모두 응용 프로그램을 만들지 않는 다른 습니다.
  • 지정 캐릭터 설정에서 설정 시간, 를 구축하는 경우 MySQL 에서는 소스입니다.이로 인해 서버를 사용하여 주어진 설정은 모든 응용 프로그램,지정하지 않고에서 서버는 시작을 시작합니다.

예제는 다음과 같은 여기 당신의 질문에 대한을 설정하 utf8 캐릭터 설정하고,또한 여기에서 설정 정렬은 더 도움이(utf8_general_ci 정렬`).

지정한 문자 설정 데이터베이스당

  CREATE DATABASE new_db
  DEFAULT CHARACTER SET utf8
  DEFAULT COLLATE utf8_general_ci;

지정 캐릭터 설정은 서버 시작

[mysqld]
character-set-server=utf8
collation-server=utf8_general_ci

지정 캐릭터 설정에서 MySQL 설정 시간

shell> cmake . -DDEFAULT_CHARSET=utf8 \
           -DDEFAULT_COLLATION=utf8_general_ci

참의 값을 문자와 콜레이션 시스템에 적용되는 변수를 연결,사용 이러한 문구:

SHOW VARIABLES LIKE 'character_set%';
SHOW VARIABLES LIKE 'collation%';

이 될 수 있습 긴 대답 하지만 거기에 모든 방법으로 사용하실 수 있습니다.희망이 있는 저의 대답입니다 당신을 위해 도움이됩니다.자세한 내용 http://dev.mysql.com/doc/refman/5.7/en/charset-applications.html

SET NAMES UTF8

이것은 트릭

데이터베이스 연결하 UTF-8

$connect = mysql_connect('$localhost','$username','$password') or die(mysql_error());
mysql_set_charset('utf8',$connect);
mysql_select_db('$database_name','$connect') or die(mysql_error());

설정 데이터베이스 연결하 UTF8:

  if($handle = @mysql_connect(DB_HOST, DB_USER, DB_PASS)){          
         //set to utf8 encoding
         mysql_set_charset('utf8',$handle);
  }

할 수 있었 솔루션을 찾을 수 있습니다.실행으로 다음에서 지정 http://technoguider.com/2015/05/utf8-set-up-in-mysql/

SET NAMES UTF8;
set collation_server = utf8_general_ci;
set default-character-set = utf8;
set init_connect = ’SET NAMES utf8′;
set character_set_server = utf8;
set character_set_client = utf8;
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top