[¿Ï·á]html ¾ØƼƼ Decode °ü·Ã Áú¹®ÀÔ´Ï´Ù. ÀÌ°Ô °¡´ÉÇÑ ¹æ¹ýÀÌ ÀÖ´ÂÁö¿ä?

   Á¶È¸ 3615   Ãßõ 0    

도저히 안되어 질문을 드립니다.

물론 불가능으로 나름대로 결론을 내리고 있습니다.

하지만 

마지막으로  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
ªÀº±Û Àϼö·Ï ½ÅÁßÇÏ°Ô.
$_value = preg_replace_callback('/&#[0-9]+;/', 'unichar', $_value);
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 À¸·Î ÀúÀåÀÌ µÇÁö ¾Ê½À´Ï´Ù.
               
¾Æ~  ³×
±×·¯¸é ÄݹéÇÔ¼ö¿¡ ±×°É ¹Ý¿µÇϸé
µÇ³ª¿ä
                         
°¨»çÇÕ´Ï´Ù
°¡´ÉÇÒ°Í °°½À´Ï´Ù
                         
°¡´ÉÇÒ °Í °°´Ù´Â Âø°¢ÀÇ Èñ¸Á°í¹®À̾ú½À´Ï´Ù.
ÇÏÁö¸¸ ¾Æ·¡ÀÇ °í¼öµéÀÌ µîÀåÇÏ´Ï ¹º°¡ ±â´ë°¡ µË´Ï´Ù.
https://mothereff.in/html-entities
»çÀÌÆ®¿¡¼­ Çغ¸¸é È­¸é Ãâ·ÂÀº Á¤¸» µðÄÚµå Àߵ˴ϴÙ.
¾ÆÁÖ ¾ÆÁÖ ¿À·¡Àü ÇÑ±Û Ã³¸® ±â¹ýÀÌ ±Ã±ÝÇØ ¿ÀÅ丶Ÿ ¾Ë°í¸®Áò¿¡ ´ëÇØ Èï¹Ì¸¦ °¡Áö±ä Çß¾ú´Âµ¥..
¿äÁòÀº ¸Ó¸®°¡ ¾ËÄݼº Ä¡¸Å¶ó ¹®¼­¸¦ Àо °ËÀº»öÀº Á¾ÀÌ¿ä....Èò»öÀº....¾î¶ó ÀÌ°Ô ¾Æ´Ñµ¥..
¾î°µç °í»ýÀÌ ¸¹À¸½Ã³×¿ä.Çö¾÷¿¡¼­ ³ª¿ÂÁö ¿À·¡µÈ ±¸´Ú´Ù¸® ÇÁ·Î±×·¡¸Ó¶ó µµ¿òµµ ¸øµå¸®´Âµ¥...
º¸ÅëÀº ÀÚ·á ºÐ¼®½Ã ¿ì¼± ±ÛÀÚ¿¡ ÇØ´çÇÏ´Â Äڵ尪ÀÌ ¾î´À°÷¿¡ Æ÷ÇԵǾîÁö³ª È®ÀÎÇØ º¸½Ã´Â°Íµµ..
ÀúÀåÇϽô ¹æ½ÄÀÌ µðºñ¶ó¸é  ¼³Ä¡¿Í ¼³°è½Ã ¾ð¾îÄڵ带 ¾î¶²°ÍÀ» Àû¿ëÇß³ªµµ È®ÀÎÀ» Çغ¸¼Å¾ß ÇÒµí ½Í½À´Ï´Ù
±×¸®°í À¥ÆäÀÌÁöÂÊÀº  ÀÚµ¿ ÀÎÄÚµùÇØ º¸¿©ÁÖ´Â °æ¿ìµµ À־..
¿À·¡Àü¿¡  ÆÄÀÏ¸í¿¡¼­ ƯÁ¤ ÀÚ¸®¼ö ±ÛÀÚ¸¦ ÃßÃâÇؼ­ °¡°øÇØ Æ¯Á¤ÀÚ¸®¼ö·Î ¸ÂÃß¾î¾ß Çߴµ¥.. À¯´ÏÄÚµå¶ó´Â ÀÌ»óÇÑ ³ð ¶§¹®¿¡ °í»ýÇß´ø ±â¾ïÀÌ..
     
¾Æ~ ÀÌ°Ç ¶Ë°íÁýÀ» ºÎ·Á¼­ µÉ ¹®Á¦°¡ ¾Æ´Ï¾ú½À´Ï´Ù.
½Ç·ÂÀÚµéÀÌ ºÙ¾î¾ß µÉ °Í °°¾Æ¿ä.
¾Æ·¡ ´ñ±Ûó·³ Çغ¸°í ³ª¸é
¼³³¯ ƯÁý ¹«ºÐÀÌ´øÁö ¹º°¡ º¸»óÀ» ÅåÅåÈ÷ Çؾ߰ڽÀ´Ï´Ù.
¿í°¡ 2019-02
ÀڼҺ讶§¹®¿¡ µðÄÚµåÈÄ¿¡ replace¸¦ ÇÒ¼ö¾øÀ»°Ì´Ï´Ù..
ÁÖ·Î »ç¿ëÇÏ´Â°Ô ÀÚ¹Ù½ºÅ©¸³Æ®¿©¼­ ÀÚ¹Ù½ºÅ©¸³Æ® ¼Ò½º·Î °£´ÜÇÏ°Ô Àû¾îº¸°Ú½À´Ï´Ù..
ÀÚ¹Ù½ºÅ©¸³Æ®¿¡¼­´Â ³ë¸Ö¶óÀÌÁî Çѹø °ÅÃÄÁÖ½Ã¸é °£´ÜÇÕ´Ï´Ù.

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"
     
°¨»çÇÕ´Ï´Ù.
ÀÏ´Ü Çغ¸°í ³­ÈÄ¿¡ ´Ù½Ã ´ñ±ÛÀ» ´Þ°Ú½À´Ï´Ù.
±èÁ¦¿¬ 2019-02
¹º°¡ Çؼ­ ã¾Æº¸´Ï xml ÀÎÄÚµùÀ̶ó°í ÇÕ´Ï´Ù.. ÷µé¾îº¸´Â°Å±ä Çѵ¥ ..

html_entity_decode($value,ENT_XML1, 'UTF-8'))

ÀÌ·¸°Ô ÇϽøé Á¤»óÀûÀ¸·Î º¯È¯ÀÌ µË´Ï´Ù.. ±×´ÙÀ½ »ç¿ëÇÏ½Ã¸é µÉµí ÇÕ´Ï´Ù.
     
¿í°¡ 2019-02
µðÄÚµùÈÄ str_replace ¸Ô³ª¿ä?
          
±èÁ¦¿¬ 2019-02
Àß µÇ¾ß ÇÏÁö¸¸.. À§ÀÇ »óȲ¿¡¼­´Â ÀÛµ¿ÀÌ ¾ÈµË´Ï´Ù..
$value ÀÚü°¡ .. ÀڼҺи®µÈ ÀÚü·Î ÀúÀåµÇ¾î .. UTF-8·Î º¯È¯µÈ °Íµµ
ÀÚ¼Ò º¯È¯ »óÅ·Π³ª¿É´Ï´Ù. ÀÚ¼Ò º¯È¯ »óÅÂÀÇ utf-8 ·Î °Ë»öÇÏ¸é º¯È¯ÀÌ µÇÁö¸¸
¿ÂÀüÇÑ ±è UTF-8 ·Î ãÀ¸¸é ¸øã¾Æ ¹ö¸³´Ï´Ù.
$value ¸¦ ¸¸µé ´ç½Ã Á¶ÇÕµÈ »óÅ·ΠÀúÀåÀ» ÇØ¾ß ÇÒµí ÇÕ´Ï´Ù...
$value À§ÂÊÀÌ ¹®Á¦Àεí..
Á¦´ë·Î ±è±¤¼®À¥1.jpg·Î ÀÎÄÚµùÀÌ µÆ´Ù¸é $value°ªÀÌ
김광섭웹1.jpg

ÀÌ·¸°Ô ³ª¿Í¾ß ÇÒ°Í °°½À´Ï´Ù.
               
°¨»çÇÕ´Ï´Ù.
ÀÏ´Ü Çغ¸°í ³­ÈÄ¿¡ ´Ù½Ã ´ñ±ÛÀ» ´Þ°Ú½À´Ï´Ù.
±èÁ¦¿¬ 2019-02
Á¦°¡ »ý°¢Çϱâ·Ð ÀÚÀ¯°Ô½ÃÆÇ¿¡ ¸Æ ÇÑ±Û ÆÄÀÏ ¾÷·Îµå ÇØ°á À̶ó°í Çϼ̴µ¥ .. ¾ÆÁ÷ ÇØ°á ÀüÀÌ½Å°Í °°½À´Ï´Ù
ÇØ°á Çϼ̴ٸé ÀÚ¼Ò ºÐ¸®µÈ »óÅ·Π³Ñ¾î¿Â°ÍÀ» Á¶ÇÕÇϰųª .. ¾Æ´Ï¸é ÀÚ¹Ù½ºÅ©¸³Æ®¿¡¼­ .. ºÐÇØµÈ°É Á¶ÇյȻóÅ·Î
³Ñ°ÜÁְųª µÑÁß¿¡ Çϳª°¡ ¼º°ø ÇØ¾ß Çϴµ¥ ..
$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 À§ÂÊ¿¡ .. ¸îÁÙ Ãß°¡ ÇÏ½Ã¸é ³¡³¯µí
     
°¨»çÇÕ´Ï´Ù.
ÀÏ´Ü Çغ¸°í ³­ÈÄ¿¡ ´Ù½Ã ´ñ±ÛÀ» ´Þ°Ú½À´Ï´Ù.
¿í°¡ 2019-02
<?php 
$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)
     
°¨»çÇÕ´Ï´Ù.
ÀÏ´Ü Çغ¸°í ³­ÈÄ¿¡ ´Ù½Ã ´ñ±ÛÀ» ´Þ°Ú½À´Ï´Ù.
¿Ïº®ÇÏ°Ô ÇØ°áµÇ¾ú½À´Ï´Ù. °¨»çÇÕ´Ï´Ù.
¿í°¡ 2019-02
¿Ïº®ÇÏ°Ô ÇØ°áÇÏ¼Ì´Ù´Ï Á¦°¡´Ù ±âºÐÀÌÁÁ³×¿ä ¼ö°íÇϼ̽À´Ï´Ù


QnA
Á¦¸ñPage 1383/5680
2014-05   4946328   Á¤ÀºÁØ1
2015-12   1482997   ¹é¸Þ°¡
2017-05   3506   À̹ÌÁ¸ÀçÇÏ¡¦
2015-02   3506   ¸Ó¶óÄ«´Âµ¥
2015-01   3506   SecondToNone
2017-11   3506   Sakura24
2016-09   3506   ÇູÇϼ¼
2014-03   3506   °¡ºü·Î±¸³ª
2019-06   3506   turtlmac
2018-06   3506   ½Ãµµ´Ï
2015-01   3506   ºÒ¹«°ñ
2020-01   3506   Èë±â»ç
2015-11   3507   FreeBSD
2015-08   3507   ¿À¼Ò¸®
2019-06   3507   ±èÇö¿ì1
2023-02   3507   °¡¿Â´©¸®I°­¡¦
2018-07   3507   µ¿ÇàÅ¥ºê
2015-06   3507   ½É¿ìö
2020-10   3507   ÁÒ½´¾Æ
2016-03   3507   ¹«¾Æ
2020-10   3507   ÀÌÈñÁÖ
2019-10   3507   TLaJ3KtYGr