mysql 또는 php에서 'u00e9'를 utf8 char로 변환하는 방법은 무엇입니까?
mysql로 가져오는 일부 지저분한 데이터에 대해 데이터 정리를 하고 있습니다.
데이터에는 'pseudo' 유니코드 문자가 포함되어 있으며 실제로는 'u00e9' 등으로 문자열에 포함되어 있습니다.
그래서 한 분야는..'Jalostotitlu00e1n' 그 어설픈 'u00e1n'을 뜯어내고 그에 상응하는 utf 캐릭터로 대체해야 합니다.
저는 substring과 CHR을 사용하여 mysql 중 하나로 이것을 할 수 있지만, PHP를 통해 데이터를 선처리하기 때문에 그곳에서도 할 수 있습니다.
나는 이미 utf 데이터와 함께 작동하도록 mysql과 php를 구성하는 방법에 대해 모두 알고 있습니다.문제는 정말 제가 가져온 소스 데이터에 있습니다.
감사해요.
/* utf8 html을 ansi로 변환하기 위한 함수 php */
public static function Utf8_ansi($valor='') {
$utf8_ansi2 = array(
"\u00c0" =>"À",
"\u00c1" =>"Á",
"\u00c2" =>"Â",
"\u00c3" =>"Ã",
"\u00c4" =>"Ä",
"\u00c5" =>"Å",
"\u00c6" =>"Æ",
"\u00c7" =>"Ç",
"\u00c8" =>"È",
"\u00c9" =>"É",
"\u00ca" =>"Ê",
"\u00cb" =>"Ë",
"\u00cc" =>"Ì",
"\u00cd" =>"Í",
"\u00ce" =>"Î",
"\u00cf" =>"Ï",
"\u00d1" =>"Ñ",
"\u00d2" =>"Ò",
"\u00d3" =>"Ó",
"\u00d4" =>"Ô",
"\u00d5" =>"Õ",
"\u00d6" =>"Ö",
"\u00d8" =>"Ø",
"\u00d9" =>"Ù",
"\u00da" =>"Ú",
"\u00db" =>"Û",
"\u00dc" =>"Ü",
"\u00dd" =>"Ý",
"\u00df" =>"ß",
"\u00e0" =>"à",
"\u00e1" =>"á",
"\u00e2" =>"â",
"\u00e3" =>"ã",
"\u00e4" =>"ä",
"\u00e5" =>"å",
"\u00e6" =>"æ",
"\u00e7" =>"ç",
"\u00e8" =>"è",
"\u00e9" =>"é",
"\u00ea" =>"ê",
"\u00eb" =>"ë",
"\u00ec" =>"ì",
"\u00ed" =>"í",
"\u00ee" =>"î",
"\u00ef" =>"ï",
"\u00f0" =>"ð",
"\u00f1" =>"ñ",
"\u00f2" =>"ò",
"\u00f3" =>"ó",
"\u00f4" =>"ô",
"\u00f5" =>"õ",
"\u00f6" =>"ö",
"\u00f8" =>"ø",
"\u00f9" =>"ù",
"\u00fa" =>"ú",
"\u00fb" =>"û",
"\u00fc" =>"ü",
"\u00fd" =>"ý",
"\u00ff" =>"ÿ");
return strtr($valor, $utf8_ansi2);
}
방법이 있습니다.모두 바꾸기uXXXX
그들의 HTML 표현과 함께.html_entity_decode()
예.echo html_entity_decode("Jalostotitlán");
양식의 모든 UTF 문자u1234
HTML로 인쇄할 수 있었습니다.ሴ
. 그러나 UTF 시퀀스의 시작을 식별하는 다른 문자가 없을 경우 위양성이 많이 발생할 수 있기 때문에 교체를 수행하는 것은 상당히 어렵습니다.단순한 정규군은
preg_replace('/u([\da-fA-F]{4})/', '&#x\1;', $str)
제 트위터 타임라인 스크립트는 é와 같은 특수 문자를 \u00e9로 되돌리기 때문에 백슬래시를 제거하고 @rubbude his preg_replace를 사용했습니다.
// Fix uxxxx charcoding to html
$text = "De #Haarstichting is h\u00e9t medium voor alles Into: De #Haarstichting is hét medium voor alles";
$str = str_replace('\u','u',$text);
$str_replaced = preg_replace('/u([\da-fA-F]{4})/', '&#x\1;', $str);
echo $str_replaced;
저한테는 효과가 있고 다음과 같이 돌아옵니다.De #Haarstichting is h\u00e9t medium voor alles
대상:De #Haarstichting is hét medium voor alles
몇 년이 지나도 응답이 늦었지만, 다음 번에 필요할 때는 이 기능이 잘 작동했다는 것을 기억하겠습니다.
mb_convert_encoding($string, 'ISO-8859-1', 'UTF-8');
그것은 바로 다음과 같습니다.utf8_decode
그러나 그것은 PHP 8.2.0에서 더 이상 사용되지 않습니다.
언급URL : https://stackoverflow.com/questions/7061339/how-to-convert-u00e9-into-a-utf8-char-in-mysql-or-php
'itsource' 카테고리의 다른 글
워드프레스 사용자를 관리자로 변경 (0) | 2023.10.14 |
---|---|
Power GUI가 출력을 자르지 않도록 방지 (0) | 2023.10.14 |
MariaDB 10.0은 덤프 삽입 시 외부 키 이름을 바꿉니다. (0) | 2023.10.09 |
java.time을 serializing하는 Spring boot 문제가 발생했습니다.ISO-8601 JSON 타임스탬프를 반환하는 LocalDateTime with Jackson? (0) | 2023.10.09 |
mysql 출력을 bash 변수로 구문 분석하면 공백으로 인해 깨집니다. (0) | 2023.10.09 |