'hangul'에 해당되는 글 2건

  1. PHP 한글 포함한 문자열 자르기 mb_substr
  2. PHP 한글 깨짐현상 해결하기(html, mysql) (2)

PHP에서 문자열을 원하는 길이만큼 자르는 함수에는 substr이라는 함수가 있습니다. 하지만 영문 byte를 기준으로 자르기 때문에 한글 문자열을 자르려다 보면 글자가 깨지는 현상이 일어납니다. 따라서 특정 인코딩이나 한글을 포함한 문자열을 자를 때에는 mb_substr 함수를 사용합니다.



PHP 한글 포함한 문자열 자르기 mb_substr


아래와 같이 호출하면 잘린 문자열을 반환합니다.


mb_substr(자를 문자열 , 어디서부터 자를 것인지, 얼마나 자를건지);


어디서부터 자를 것인지 부분은 0부터 시작합니다.

ex)

echo mb_substr("안녕하세요.", 0, 2);


출력값 )

안녕



사용할 특정 인코딩 방법을 지정할 수도 있습니다.

mb_substr(자를 문자열 , 어디서부터 자를건지, 얼마나 자를 것인지, 인코딩 방법);


ex)

echo mb_substr("안녕하세요.", 0, 2, 'utf-8');


PHP를 사용하여 개발하다보면, 한글로 된 값이 나올때도 있을 수 있습니다. 그런데 PHP를 통하면 DB에 깨져서 들어간다던지, 아니면 html 값이 깨질 때도 있습니다.

 
PHP 한글 깨짐현상 해결하기(html, mysql)

PHP를 통했을때 한글이 깨지는 현상 해결하는 방법엔 여러가지가 있습니다.
먼저 한글 깨지는 현상이 DB나 클라이언트 문제가 아닌 PHP가 원인인지 확인후 진행하는것이 좋습니다.
Mysql 입출력 방식이 문제였던 저 같은 경우에는 마지막 방법으로 성공하였습니다.

1. 인코딩 방식 통일(PHP 저장 방식, 웹 형식 모두 utf-8로 통일)


문서 저장 방식을 모두 하나로 통일하는 방법입니다.

2.  iconv() 사용

iconv("현재 인코딩", "바꿀 인코딩", 바꿀 문자열)

사용 예시 )
$ex = iconv("utf8", "euckr", $ex);

3. Mysql 입출력 인코딩을 지정
Mysql 연동을 한다면 입출력 인코딩이 달라서가 원인이 될 수 있다고 합니다.
아래 3줄의 소스를 추가함으로써 해결하였습니다.

mysql_query("set session character_set_connection=utf8;");

mysql_query("set session character_set_results=utf8;");

mysql_query("set session character_set_client=utf8;");


4. php가 출력하는 html을 utf-8로 변경

PHP에서 출력하는 html을 utf-8로 변경함으로써 해결합니다.
PHP내용 <?,?> 위 아래로 추가합니다.

<html>

<head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head>

<body>

<?
PHP 내용
?> 

</body>

</html>



참고한 사이트 : 
http://ra2kstar.tistory.com/59




도움이 되셨나요?
그럼 손가락을 눌러주세요:)