<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
	<channel>
				<title><![CDATA[케이보드 첨부파일 제목(파일명) 한글 깨짐 문제 오류]]></title>
		<link>https://www.cosmosfarm.com/threads/rss/document/66608</link>
		<description><![CDATA[<p>1. 정확한 제품 또는 플러그인 이름</p>

<p>KBoard</p>

<p> </p>

<p>2. 상세 내용</p>

<p>안녕하세요.</p>

<p>게시판 첨부파일 다운로드 시 언제부턴가 한글이 깨지는 문제가 발생했습니다.<br />
원본 제목: 구체적이미지20200216<br />
깨진 제목: êµ¬ì²´ì _ì_´ë¯¸ì§_20200216</p>

<p>그래서 KBController.class.php의 파일 다운로드 부분 코드를 챗GPT에게 물어봐서 해결했습니다. 다음 업데이트 때 반영하여 수정해주셨으면 좋겠습니다.^^<br />
역시 파일 인코딩 문제였고, UTF-8 설정해주어 해결되었습니다^^<br />
기존 코드: header('Content-Disposition: attachment; filename="' . $file_info-&gt;file_name . '"');<br />
수정 코드: header("Content-Disposition: attachment; filename*=UTF-8''" . rawurlencode($file_info-&gt;file_name));</p>

<p>[ChatGPT 답변]<br />
문제는 파일명이 웹 브라우저에 전달될 때 인코딩 문제가 발생하기 때문입니다. 이를 해결하기 위해 파일 이름을 rawurlencode 함수로 인코딩하거나 'Content-Disposition' 헤더의 filename* 매개변수를 사용해야 합니다.<br />
다음은 수정된 코드 일부입니다:</p>

<pre>
<code class="language-php">if($ie){
    $file_info-&gt;file_name = iconv('UTF-8', 'EUC-KR//IGNORE', $file_info-&gt;file_name);
    header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
    header('Pragma: public');
}
else if($edge){
    $file_info-&gt;file_name = urlencode($file_info-&gt;file_name);
}
else{
    header('Pragma: no-cache');
}

header('Content-type: ' . $file_info-&gt;mime_type);

// 기존 코드
//header('Content-Disposition: attachment; filename="' . $file_info-&gt;file_name . '"');

// 수정된 코드
header("Content-Disposition: attachment; filename*=UTF-8''" . rawurlencode($file_info-&gt;file_name));

header('Content-Transfer-Encoding: binary');
header('Content-length: ' . $file_info-&gt;size);
header('Expires: 0');

@ob_clean();
@flush();

if($fd = fopen($file_info-&gt;full_path, 'r')){
	while(!feof($fd)){
		echo fread($fd, 4096);
		flush();
	}
}</code></pre>

<p>위의 수정된 코드에서는 파일 이름을 UTF-8로 인코딩하고 rawurlencode 함수를 사용하여 안전하게 전송할 수 있도록 하였습니다. 이렇게 하면 다운로드 받은 파일의 이름이 제대로 보일 것입니다.<br />
또한 다양한 웹 브라우저에서 잘 작동하는 방법이므로 IE와 Edge에 대한 별도의 처리는 필요하지 않습니다.</p>

<p>[ChatGPT 답변 끝]</p>

<p> </p>

<p> </p>]]></description>
		<copyright>Copyright 2026, 코스모스팜</copyright>
				<item>
			<title><![CDATA[안녕하세요~^^

네 오류를 알려주셔서 감사합니다. 

저희 쪽에서도 오류를 확인 후에 

다음 업데이트...]]></title>
			<link>https://www.cosmosfarm.com/threads/document/66617</link>
			<description><![CDATA[<p>안녕하세요~^^</p>

<p>네 오류를 알려주셔서 감사합니다. </p>

<p>저희 쪽에서도 오류를 확인 후에 </p>

<p>다음 업데이트에서 오류를 수정해서 업데이트하겠습니다.</p>

<p>고맙습니다.</p>

<p> </p>]]></description>
			<author>스레드봇</author>
			<pubDate>Wed, 04 Oct 2023 01:28:05 +0000</pubDate>
			<category>KBoard</category>
		</item>
			</channel>
</rss>