도저히 안되어 질문을 드립니다.
물론 불가능으로 나름대로 결론을 내리고 있습니다.
하지만
마지막으로 2cpu 고견을 들어보고
그렇게 결론지어도 좋겠다는 생각에 글을 적습니다.
먼저 이것은 맥의 크롬 브라우저에서
한글 파일명을 HTML 앤티티화 시켜버려서 자소 조합으로 보여준 코드입니다.
$value="김광석웹1.jpg"
이것을 화면에 출력하면
김광석웹1.jpg 으로 출력이 됩니다.
그러나 실제 한글의 문자로 변환하고자 하는데
가능한가요?
아무리 해봐도 화면출력은 "김광석웹1.jpg"은 나오지만
하지만 실제는 한글 html 엔티티가 화면에 저렇게 표현된것 뿐입니다.
html_entity_decode($value, ENT_NOQUOTES, 'UTF-8');
이렇게도 해봤습니다. ㅠㅠㅠ
만일
실제적으로 디코드 되었다면
화면출력만이 아닌 실제 해당 문자로 변환이 되어
글자 치환이나 글자 검색이 되어야 하는데...
예) $value = str_replace("김", "**", $value); echo $value;
화면만 뿌려주고 실제는 전혀 되지 않습니다.ㅠㅠㅠ
참고로 아래의 html 앤티티는 "파이어폭스"라는 글자인데
html_entity_decode($value, ENT_NOQUOTES, 'UTF-8'); 으로 하면 실제 문자로 변환이 됩니다.
$value = '파이어폭스';
아마도 힘든 질문이 될련지...
방식은 자바스크립트와 php 등 상관이 없습니다.
2cpu의 도움주신 많은 분들께 늘 감사드립니다.
☎ HP 010-9678-7900
function unichar($match) {
return mb_convert_encoding($match[0], "utf-8", "HTML-ENTITIES");
}
ÀÌ°ÍÀº »ç¿ëÇÑ ÄݹéÇÔ¼ö ÀÔ´Ï´Ù.
Áï ±è±¤¼®À¥1.jpg À¸·Î µðÄÚ´õ µÇ¾ú´Ù¸é
php¿¡¼ ¾Æ·¡ ±¸¹®À» ½ÇÇàÇϸé
Ãâ·ÂÀÌ "±è" ´ë½Å¿¡ "**±¤¼®À¥1.jpg"À¸·Î Ãâ·ÂÀÌ µÇ¾î¾ß ÇÏÁö¿ä.
¿¹) $value = str_replace("±è", "**", $value); echo $value;
ÀÌ°Ô Á¤¸» ¾ÈµÇ´õ±º¿ä.
ȸé Ãâ·ÂÀº Á¦´ë·Î ³ª¿ÀÁö¸¸ db¿¡´Â ±è±¤¼®À¥1.jpg À¸·Î ÀúÀåÀÌ µÇÁö ¾Ê½À´Ï´Ù.
±×·¯¸é ÄݹéÇÔ¼ö¿¡ ±×°É ¹Ý¿µÇϸé
µÇ³ª¿ä
°¡´ÉÇÒ°Í °°½À´Ï´Ù
ÇÏÁö¸¸ ¾Æ·¡ÀÇ °í¼öµéÀÌ µîÀåÇÏ´Ï ¹º°¡ ±â´ë°¡ µË´Ï´Ù.
»çÀÌÆ®¿¡¼ Çغ¸¸é ȸé Ãâ·ÂÀº Á¤¸» µðÄÚµå Àߵ˴ϴÙ.
¿äÁòÀº ¸Ó¸®°¡ ¾ËÄݼº Ä¡¸Å¶ó ¹®¼¸¦ Àо °ËÀº»öÀº Á¾ÀÌ¿ä....Èò»öÀº....¾î¶ó ÀÌ°Ô ¾Æ´Ñµ¥..
¾î°µç °í»ýÀÌ ¸¹À¸½Ã³×¿ä.Çö¾÷¿¡¼ ³ª¿ÂÁö ¿À·¡µÈ ±¸´Ú´Ù¸® ÇÁ·Î±×·¡¸Ó¶ó µµ¿òµµ ¸øµå¸®´Âµ¥...
º¸ÅëÀº ÀÚ·á ºÐ¼®½Ã ¿ì¼± ±ÛÀÚ¿¡ ÇØ´çÇÏ´Â Äڵ尪ÀÌ ¾î´À°÷¿¡ Æ÷ÇԵǾîÁö³ª È®ÀÎÇØ º¸½Ã´Â°Íµµ..
ÀúÀåÇϽô ¹æ½ÄÀÌ µðºñ¶ó¸é ¼³Ä¡¿Í ¼³°è½Ã ¾ð¾îÄڵ带 ¾î¶²°ÍÀ» Àû¿ëÇß³ªµµ È®ÀÎÀ» Çغ¸¼Å¾ß ÇÒµí ½Í½À´Ï´Ù
±×¸®°í À¥ÆäÀÌÁöÂÊÀº ÀÚµ¿ ÀÎÄÚµùÇØ º¸¿©ÁÖ´Â °æ¿ìµµ ÀÖ¾î¼..
¿À·¡Àü¿¡ ÆÄÀÏ¸í¿¡¼ ƯÁ¤ ÀÚ¸®¼ö ±ÛÀÚ¸¦ ÃßÃâÇؼ °¡°øÇØ Æ¯Á¤ÀÚ¸®¼ö·Î ¸ÂÃß¾î¾ß Çߴµ¥.. À¯´ÏÄÚµå¶ó´Â ÀÌ»óÇÑ ³ð ¶§¹®¿¡ °í»ýÇß´ø ±â¾ïÀÌ..
½Ç·ÂÀÚµéÀÌ ºÙ¾î¾ß µÉ °Í °°¾Æ¿ä.
¾Æ·¡ ´ñ±Ûó·³ Çغ¸°í ³ª¸é
¼³³¯ ƯÁý ¹«ºÐÀÌ´øÁö ¹º°¡ º¸»óÀ» ÅåÅåÈ÷ Çؾ߰ڽÀ´Ï´Ù.
ÁÖ·Î »ç¿ëÇÏ´Â°Ô ÀÚ¹Ù½ºÅ©¸³Æ®¿©¼ ÀÚ¹Ù½ºÅ©¸³Æ® ¼Ò½º·Î °£´ÜÇÏ°Ô Àû¾îº¸°Ú½À´Ï´Ù..
ÀÚ¹Ù½ºÅ©¸³Æ®¿¡¼´Â ³ë¸Ö¶óÀÌÁî Çѹø °ÅÃÄÁÖ½Ã¸é °£´ÜÇÕ´Ï´Ù.
function decode(str) {
return str.replace(/(\d+);/g, function(match, dec) {
return String.fromCharCode(dec);
});
}
var decodedData = decode("HTML_ENTITY_HERE");
var normailizedData = decodedData.normalize("NFC");
console.log("±âÁ¸ ÀÚ¸ð ºÐ¸®µÈ »óÅÂÀÇ ±æÀÌ : "+decodedData.length);
console.log("³ë¸Ö¶óÀÌÁîµÈ : "+normailizedData.length);
normailizedData = normailizedData.replace("±è", "¿í°¡");
console.log(normailizedData);
===== output =====
"±âÁ¸ ÀÚÀ½ ¸ðÀ½ ºÐ¸®µÈ »óÅÂÀÇ ±æÀÌ : 17"
"³ë¸Ö¶óÀÌÁîµÈ : 9"
"¿í°¡±¤¼®À¥1.jpg"
ÀÏ´Ü Çغ¸°í ³ÈÄ¿¡ ´Ù½Ã ´ñ±ÛÀ» ´Þ°Ú½À´Ï´Ù.
html_entity_decode($value,ENT_XML1, 'UTF-8'))
ÀÌ·¸°Ô ÇϽøé Á¤»óÀûÀ¸·Î º¯È¯ÀÌ µË´Ï´Ù.. ±×´ÙÀ½ »ç¿ëÇÏ½Ã¸é µÉµí ÇÕ´Ï´Ù.
$value ÀÚü°¡ .. ÀڼҺи®µÈ ÀÚü·Î ÀúÀåµÇ¾î .. UTF-8·Î º¯È¯µÈ °Íµµ
ÀÚ¼Ò º¯È¯ »óÅ·Π³ª¿É´Ï´Ù. ÀÚ¼Ò º¯È¯ »óÅÂÀÇ utf-8 ·Î °Ë»öÇÏ¸é º¯È¯ÀÌ µÇÁö¸¸
¿ÂÀüÇÑ ±è UTF-8 ·Î ãÀ¸¸é ¸øã¾Æ ¹ö¸³´Ï´Ù.
$value ¸¦ ¸¸µé ´ç½Ã Á¶ÇÕµÈ »óÅ·ΠÀúÀåÀ» ÇØ¾ß ÇÒµí ÇÕ´Ï´Ù...
$value À§ÂÊÀÌ ¹®Á¦Àεí..
Á¦´ë·Î ±è±¤¼®À¥1.jpg·Î ÀÎÄÚµùÀÌ µÆ´Ù¸é $value°ªÀÌ
김광섭웹1.jpg
ÀÌ·¸°Ô ³ª¿Í¾ß ÇÒ°Í °°½À´Ï´Ù.
ÀÏ´Ü Çغ¸°í ³ÈÄ¿¡ ´Ù½Ã ´ñ±ÛÀ» ´Þ°Ú½À´Ï´Ù.
ÇØ°á Çϼ̴ٸé ÀÚ¼Ò ºÐ¸®µÈ »óÅ·Π³Ñ¾î¿Â°ÍÀ» Á¶ÇÕÇϰųª .. ¾Æ´Ï¸é ÀÚ¹Ù½ºÅ©¸³Æ®¿¡¼ .. ºÐÇØµÈ°É Á¶ÇյȻóÅ·Î
³Ñ°ÜÁְųª µÑÁß¿¡ Çϳª°¡ ¼º°ø ÇØ¾ß Çϴµ¥ ..
$value °ªÀÚü°¡ .. ÀڼҺи® »óÅÂÀΰªÀ¸·Î ÀúÀåµÇ¾îÀÖ´Â°Í º¸´Ï .. µÑ´Ù Á¦´ë·Î 󸮰¡ ¾ÈµÇ¾îÀÖ´Âµí ½Í½À´Ï´Ù.
óÀ½ ÀÚ°Ô¿¡ ¾²½Å°Íó·³.. ÀÚ¹Ù¿¡¼ ó¸®Çؼ °¡Á®¿À°Å³ª.. php ¿¡¼ .. ´©°¡ ó¸® Çؼ .. Á¶ÇÕÀ» ¿Ï¼ºÇϸé
±× ¾Æ·¡²« ¸»¾¸µ¥·Î html_entity_decode($value,ENT_XML1, 'UTF-8')) ·Î ó¸®Çؼ »ç¿ëÇÏ½Ã¸é µÉ°Í °°½À´Ï´Ù.
$value ¸¦ 김광섭웹1.jpg
·Î ³Ö°í Å×½ºÆ® Çغ¸¼¼¿ä ..
php °³¹ßȯ°æÀÌ ¾øÀ¸´Ï .. command line ÇÏ·Á´Ï .. ¹¹°¡ ¹ºÁö .. ¤¾¤§¤§
³ë¸Ö¶óÀÌÁî´Â
http://haah.kr/2017/09/22/mac-filename-normalization/
ÂüÁ¶ÇÏ½Ã¸é ¼Ò½º ´ÙÀÖ½À´Ï´Ù.. $value À§ÂÊ¿¡ .. ¸îÁÙ Ãß°¡ ÇÏ½Ã¸é ³¡³¯µí
ÀÏ´Ü Çغ¸°í ³ÈÄ¿¡ ´Ù½Ã ´ñ±ÛÀ» ´Þ°Ú½À´Ï´Ù.
$value=HTML_ENTITY_HERE;
$data = normalizer_normalize(html_entity_decode($value), Normalizer::FORM_C );
$output = str_replace("±è", "¿í°¡", $data);
echo $output; // ¿í°¡±¤¼®À¥1.jpg
phpµµ ¸¶Âù°¡Áö·Î ³ë¸Ö¶óÀÌÁî ÇÏ´Ï±î °£´ÜÇÏ°Ô Ã³¸®µÇ³×¿ä
php.ini ¿¡¼ extension=php_intl.dll ȤÀº soÈ°¼ºÈ ÇÏ½ÅµÚ »ç¿ëÇϽøéµË´Ï´Ù.
°¢°¢ ´ëÀÀÇÏ´Â ¿É¼ÇÀÔ´Ï´Ù.
https://ko.wikipedia.org/wiki/%EC%9C%A0%EB%8B%88%EC%BD%94%EB%93%9C_%EC%A0%95%EA%B7%9C%ED%99%94
Normalization Form D (NFD)
Normalization Form C (NFC)
Normalization Form KD (NFKD)
Normalization Form KC (NFKC)
ÀÏ´Ü Çغ¸°í ³ÈÄ¿¡ ´Ù½Ã ´ñ±ÛÀ» ´Þ°Ú½À´Ï´Ù.