<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>도구 &#8211; 블로그 네클(BlogNeKr)</title>
	<atom:link href="https://blog.ne.kr/category/tools/feed/" rel="self" type="application/rss+xml" />
	<link>https://blog.ne.kr</link>
	<description>각종 트렌드(뉴스, 이슈, 연예) 종합 블로그</description>
	<lastBuildDate>Sun, 10 Aug 2025 19:54:05 +0000</lastBuildDate>
	<language>ko-KR</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://blog.ne.kr/wp-content/uploads/2025/08/cropped-ChatGPT-Image-2025년-8월-10일-오전-01_39_47-32x32.png</url>
	<title>도구 &#8211; 블로그 네클(BlogNeKr)</title>
	<link>https://blog.ne.kr</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>UNIX 타임 KST 변환 – 온라인 변환기</title>
		<link>https://blog.ne.kr/unix-time-kst-converter/</link>
					<comments>https://blog.ne.kr/unix-time-kst-converter/#respond</comments>
		
		<dc:creator><![CDATA[블로그 네클]]></dc:creator>
		<pubDate>Sun, 10 Aug 2025 19:52:04 +0000</pubDate>
				<category><![CDATA[도구]]></category>
		<category><![CDATA[KST]]></category>
		<category><![CDATA[UNIX]]></category>
		<category><![CDATA[UTC+9]]></category>
		<category><![CDATA[날짜시간]]></category>
		<category><![CDATA[변환기]]></category>
		<category><![CDATA[시간 변환]]></category>
		<category><![CDATA[에포크]]></category>
		<category><![CDATA[온라인 툴]]></category>
		<category><![CDATA[타임스탬프]]></category>
		<category><![CDATA[한국시간]]></category>
		<guid isPermaLink="false">https://blog.ne.kr/?p=615</guid>

					<description><![CDATA[UNIX 타임 KST 변환 – 온라인 변환기 UNIX 타임 KST 변환 온라인 도구로 초 단위 유닉스 타임을 한국시간으로, 또는 KST [&#8230;]]]></description>
										<content:encoded><![CDATA[
<h1 class="wp-block-heading">UNIX 타임 KST 변환 – 온라인 변환기</h1>



<figure class="wp-block-image aligncenter size-large"><img fetchpriority="high" decoding="async" width="1024" height="314" src="https://blog.ne.kr/wp-content/uploads/2025/08/image-1-1024x314.png" alt="UNIX 타임 KST 변환 예시" class="wp-image-617" srcset="https://blog.ne.kr/wp-content/uploads/2025/08/image-1-1024x314.png 1024w, https://blog.ne.kr/wp-content/uploads/2025/08/image-1-300x92.png 300w, https://blog.ne.kr/wp-content/uploads/2025/08/image-1-768x236.png 768w, https://blog.ne.kr/wp-content/uploads/2025/08/image-1.png 1143w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">UNIX 타임 KST 변환 예시</figcaption></figure>



<p><strong>UNIX 타임 KST 변환</strong> 온라인 도구로 초 단위 유닉스 타임을 한국시간으로, 또는 KST 날짜/시간을 유닉스 타임(초)으로 즉시 변환하세요. 복사 버튼과 오류 안내를 포함해 브라우저에서 바로 작동합니다.</p>



<h2 class="wp-block-heading">UNIX 타임 KST 변환 도구</h2>



<style>
  .time-card{border:1px solid #e5e7eb;border-radius:12px;padding:12px}
  .time-row{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin:8px 0}
  .time-io{width:100%;max-width:420px}
  .time-badge{font-size:12px;opacity:.8}
</style>

<div class="time-card" role="region" aria-label="UNIX 타임 KST 변환">
  <div class="time-row">
    <label for="unix" class="time-io">UNIX 타임(초)
      <input id="unix" type="number" placeholder="예: 1723267200" class="time-io">
    </label>
    <button type="button" id="btn-to-kst">→ KST</button>
    <button type="button" id="btn-copy-kst">KST 복사</button>
  </div>
  <div id="kst" class="time-row" aria-live="polite"></div>

  <hr>

  <div class="time-row">
    <label for="datestr" class="time-io">한국시간(KST) 입력
      <input id="datestr" type="datetime-local" class="time-io">
    </label>
    <button type="button" id="btn-to-unix">→ UNIX</button>
    <button type="button" id="btn-copy-unix">UNIX 복사</button>
  </div>
  <div id="unixout" class="time-row" aria-live="polite"></div>

  <div class="time-row">
    <span id="status" class="time-badge"></span>
  </div>
</div>

<script>
(function(){
  const $ = (id)=>document.getElementById(id);
  const unixEl = $('unix');
  const kstEl = $('kst');
  const dateEl = $('datestr');
  const unixOutEl = $('unixout');
  const status = $('status');

  const ok=(m)=>{ status.textContent=m; status.style.color='#374151'; };
  const err=(m)=>{ status.textContent=m; status.style.color='#b91c1c'; };

  // KST 포맷터
  function formatKST(date){
    const opt = { timeZone:'Asia/Seoul', year:'numeric', month:'2-digit', day:'2-digit',
                  hour:'2-digit', minute:'2-digit', second:'2-digit', hour12:false };
    const parts = new Intl.DateTimeFormat('ko-KR', opt).formatToParts(date)
      .reduce((a,p)=> (a[p.type]=p.value, a), {});
    // YYYY-MM-DD HH:mm:ss KST
    return `${parts.year}-${parts.month}-${parts.day} ${parts.hour}:${parts.minute}:${parts.second} KST`;
  }

  // UNIX(초) → KST
  $('btn-to-kst').onclick = ()=>{
    const sec = Number(unixEl.value);
    if(!Number.isFinite(sec) || sec<=0){ err('UNIX 초 단위를 올바르게 입력하세요.'); return; }
    const d = new Date(sec*1000);
    kstEl.textContent = formatKST(d);
    ok('UNIX → KST 변환 완료');
  };

  // KST 입력 → UNIX(초)
  // datetime-local 값을 KST로 간주하여 UTC 기준 epoch 계산
  $('btn-to-unix').onclick = ()=>{
    if(!dateEl.value){ err('KST 날짜/시간을 선택하세요.'); return; }
    // yyyy-mm-ddThh:mm(:ss)?
    const [date, time] = dateEl.value.split('T');
    const [Y,M,D] = date.split('-').map(Number);
    const [h,m,s] = (time||'00:00:00').split(':').map(x=>Number(x||0));
    // KST → UTC 보정(-9h) 후 epoch
    const ms = Date.UTC(Y, M-1, D, h, m, s||0) - 9*60*60*1000;
    const sec = Math.floor(ms/1000);
    unixOutEl.textContent = String(sec);
    ok('KST → UNIX 변환 완료');
  };

  // 복사
  $('btn-copy-kst').onclick = async()=>{
    try{
      await navigator.clipboard.writeText(kstEl.textContent||'');
      ok('KST 결과를 복사했습니다.');
    }catch(e){ err('복사 실패: 브라우저 권한을 확인하세요.'); }
  };
  $('btn-copy-unix').onclick = async()=>{
    try{
      await navigator.clipboard.writeText(unixOutEl.textContent||'');
      ok('UNIX 결과를 복사했습니다.');
    }catch(e){ err('복사 실패: 브라우저 권한을 확인하세요.'); }
  };
})();
</script>



<h2 class="wp-block-heading">UNIX 타임 KST 변환 사용 방법</h2>



<ul class="wp-block-list">
<li><strong>UNIX → KST</strong>: 유닉스 초를 입력하고 <em>→ KST</em> 버튼을 클릭합니다.</li>



<li><strong>KST → UNIX</strong>: 한국시간을 선택하고 <em>→ UNIX</em> 버튼을 클릭합니다.</li>



<li>복사 버튼으로 결과를 빠르게 클립보드로 저장할 수 있습니다.</li>
</ul>



<h2 class="wp-block-heading">UNIX 타임 KST 변환 FAQ</h2>



<h3 class="wp-block-heading">UNIX 타임과 KST의 차이는?</h3>



<p>UNIX 타임은 1970-01-01 00:00:00 UTC부터 경과한 초이고, KST는 한국 표준시(UTC+9)입니다.</p>



<h3 class="wp-block-heading">왜 9시간을 보정하나요?</h3>



<p>KST는 UTC보다 9시간 빠르므로, KST 입력을 UNIX로 변환할 때는 9시간을 빼서 UTC 기준 에포크 초를 계산합니다.</p>



<p>추가 참고: <a href="https://ko.wikipedia.org/wiki/%EC%9C%A0%EB%8B%89%EC%8A%A4_%EC%8B%9C%EA%B0%84" target="_blank" rel="nofollow noopener">위키백과: 유닉스 시간</a> · <a href="https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Date" target="_blank" rel="nofollow noopener">MDN: JavaScript Date</a></p>



<p>관련 도구: <a href="/tools/url-encoder-decoder">URL 인코더/디코더</a>, <a href="/tools/base64-encoder-decoder">Base64 인코더/디코더</a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.ne.kr/unix-time-kst-converter/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>URL 인코더 디코더 – 온라인 URL Encode/Decode 변환기</title>
		<link>https://blog.ne.kr/url-encoder-decoder-online/</link>
					<comments>https://blog.ne.kr/url-encoder-decoder-online/#respond</comments>
		
		<dc:creator><![CDATA[블로그 네클]]></dc:creator>
		<pubDate>Sun, 10 Aug 2025 19:44:10 +0000</pubDate>
				<category><![CDATA[도구]]></category>
		<category><![CDATA[URL]]></category>
		<category><![CDATA[URL 변환]]></category>
		<category><![CDATA[UTF-8]]></category>
		<category><![CDATA[디코더]]></category>
		<category><![CDATA[디코딩]]></category>
		<category><![CDATA[변환기]]></category>
		<category><![CDATA[온라인 툴]]></category>
		<category><![CDATA[인코더]]></category>
		<category><![CDATA[인코딩]]></category>
		<category><![CDATA[퍼센트 인코딩]]></category>
		<guid isPermaLink="false">https://blog.ne.kr/?p=608</guid>

					<description><![CDATA[URL 인코더 디코더 – 온라인 URL Encode/Decode 툴 URL 인코더 디코더 온라인 툴은 텍스트와 URL을 안전하게 인코딩·디코딩할 수 있는 간단하고 [&#8230;]]]></description>
										<content:encoded><![CDATA[
<h1 class="wp-block-heading">URL 인코더 디코더 – 온라인 URL Encode/Decode 툴</h1>



<figure class="wp-block-image aligncenter size-large"><img decoding="async" width="1024" height="386" src="https://blog.ne.kr/wp-content/uploads/2025/08/image-1024x386.png" alt="URL 인코더 디코더 예시" class="wp-image-611" srcset="https://blog.ne.kr/wp-content/uploads/2025/08/image-1024x386.png 1024w, https://blog.ne.kr/wp-content/uploads/2025/08/image-300x113.png 300w, https://blog.ne.kr/wp-content/uploads/2025/08/image-768x290.png 768w, https://blog.ne.kr/wp-content/uploads/2025/08/image.png 1156w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">URL 인코더 디코더 예시</figcaption></figure>



<p><strong>URL 인코더 디코더</strong> 온라인 툴은 텍스트와 URL을 안전하게 인코딩·디코딩할 수 있는 간단하고 빠른 도구입니다. UTF-8 지원, 복사·붙여넣기, 브라우저에서 즉시 실행이 가능합니다.</p>



<h2 class="wp-block-heading">URL 인코더 디코더 도구</h2>



<style>
  .url-card{border:1px solid #e5e7eb;border-radius:12px;padding:12px}
  .url-io{width:100%;min-height:110px}
  .url-row{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin:8px 0}
  .url-badge{font-size:12px;opacity:.8}
</style>

<div class="url-card" role="region" aria-label="URL 인코더 디코더">
  <textarea id="urlin" class="url-io" placeholder="텍스트 또는 URL을 입력하세요"></textarea>
  <div class="url-row">
    <button type="button" id="btn-enc">인코딩</button>
    <button type="button" id="btn-dec">디코딩</button>
    <button type="button" id="btn-clear">초기화</button>
    <button type="button" id="btn-copy">결과 복사</button>
    <button type="button" id="btn-paste">붙여넣기</button>
    <span class="url-badge">입력 길이: <span id="inlen">0</span></span>
  </div>
  <textarea id="urlout" class="url-io" placeholder="결과 출력"></textarea>
  <div class="url-row">
    <span class="url-badge">출력 길이: <span id="outlen">0</span></span>
    <span id="status" class="url-badge" aria-live="polite"></span>
  </div>
</div>

<script>
(function(){
  const $=(id)=>document.getElementById(id);
  const inEl=$('urlin'), outEl=$('urlout'), inlen=$('inlen'), outlen=$('outlen'), status=$('status');
  const refresh=()=>{ inlen.textContent=(inEl.value||'').length; outlen.textContent=(outEl.value||'').length; };
  const ok=(m)=>{ status.textContent=m; status.style.color='#374151'; };
  const err=(m)=>{ status.textContent=m; status.style.color='#b91c1c'; };

  refresh(); inEl.addEventListener('input',refresh); outEl.addEventListener('input',refresh);

  $('btn-enc').onclick=()=>{ outEl.value = encodeURIComponent(inEl.value||''); ok('인코딩 완료'); refresh(); };
  $('btn-dec').onclick=()=>{ try{ outEl.value = decodeURIComponent(inEl.value||''); ok('디코딩 완료'); refresh(); }catch(e){ err('디코딩 오류: 유효한 URL 인코딩이 아닙니다.'); } };
  $('btn-clear').onclick=()=>{ inEl.value=''; outEl.value=''; ok('초기화 완료'); refresh(); };
  $('btn-copy').onclick=async()=>{ try{ await navigator.clipboard.writeText(outEl.value||''); ok('결과 복사 완료'); }catch(e){ err('복사 실패: 권한을 확인하세요'); } };
  $('btn-paste').onclick=async()=>{ try{ inEl.value = await navigator.clipboard.readText(); ok('붙여넣기 완료'); refresh(); }catch(e){ err('붙여넣기 실패: 권한을 확인하세요'); } };
})();
</script>



<h2 class="wp-block-heading">URL 인코더 디코더 사용 방법</h2>



<ul class="wp-block-list">
<li><strong>URL 인코딩</strong>: 특수문자나 한글을 안전한 웹 형식(%xx)으로 변환</li>



<li><strong>URL 디코딩</strong>: 인코딩된 문자열을 원래 문자로 복원</li>



<li>복사·붙여넣기 버튼으로 결과를 손쉽게 활용</li>
</ul>



<h2 class="wp-block-heading">URL 인코더 디코더 FAQ</h2>



<h3 class="wp-block-heading">URL 인코딩이란?</h3>



<p>웹 주소(URL)에서 안전하지 않은 문자를 %기호와 16진수 코드로 변환하는 방식입니다.</p>



<h3 class="wp-block-heading">URL 인코더 디코더는 언제 사용하나요?</h3>



<p>URL 파라미터, 쿼리스트링, 파일 이름 등에 특수문자를 포함해야 할 때 사용합니다.</p>



<p>자세한 설명은 <a href="https://developer.mozilla.org/ko/docs/Glossary/percent-encoding" target="_blank" rel="nofollow noopener">MDN Percent-encoding</a>을 참고하세요. 관련 도구: <a href="/tools/base64-encoder-decoder">Base64 인코더/디코더</a>, <a href="/tools/hash-generator">해시 생성기</a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.ne.kr/url-encoder-decoder-online/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Base64 인코더 디코더 – 온라인 텍스트 인코딩/디코딩 툴</title>
		<link>https://blog.ne.kr/base64-encoder-decoder/</link>
					<comments>https://blog.ne.kr/base64-encoder-decoder/#respond</comments>
		
		<dc:creator><![CDATA[블로그 네클]]></dc:creator>
		<pubDate>Sun, 10 Aug 2025 19:31:32 +0000</pubDate>
				<category><![CDATA[도구]]></category>
		<category><![CDATA[Base64]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[디코더]]></category>
		<category><![CDATA[디코딩]]></category>
		<category><![CDATA[문자열 변환]]></category>
		<category><![CDATA[변환기]]></category>
		<category><![CDATA[온라인 툴]]></category>
		<category><![CDATA[인코더]]></category>
		<category><![CDATA[인코딩]]></category>
		<guid isPermaLink="false">https://blog.ne.kr/?p=606</guid>

					<description><![CDATA[Base64 인코더 디코더 – 온라인 텍스트 인코딩/디코딩 툴 Base64 인코더 디코더 툴로 텍스트와 파일을 손쉽게 인코딩·디코딩하세요. UTF-8 완전 지원, URL‑safe [&#8230;]]]></description>
										<content:encoded><![CDATA[
<h1 class="wp-block-heading">Base64 인코더 디코더 – 온라인 텍스트 인코딩/디코딩 툴</h1>



<p><strong>Base64 인코더 디코더</strong> 툴로 텍스트와 파일을 손쉽게 인코딩·디코딩하세요. UTF-8 완전 지원, URL‑safe 옵션, 파일 업로드/다운로드, 복사/붙여넣기까지 모두 브라우저에서 즉시 작동합니다.</p>



<nav aria-label="본문 목차" style="margin:12px 0;">
  <ul>
    <li><a href="#tool">Base64 인코딩/디코딩 도구</a></li>
    <li><a href="#how-to">사용 방법</a></li>
    <li><a href="#faq">자주 묻는 질문(FAQ)</a></li>
  </ul>
</nav>



<h2 class="wp-block-heading" id="tool">Base64 인코딩/디코딩 도구</h2>



<style>
  .b64-card{border:1px solid #e5e7eb;border-radius:12px;padding:12px}
  .b64-row{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin:8px 0}
  .b64-row button,.b64-row label{margin-right:6px}
  .b64-io{width:100%;min-height:120px}
  .b64-badge{font-size:12px;opacity:.8}
</style>

<div class="b64-card" role="region" aria-label="Base64 인코더 디코더">
  <div class="b64-row">
    <label><input type="checkbox" id="urlsafe"> URL‑safe 사용(-, _ 적용)</label>
    <label><input type="checkbox" id="nopad"> 패딩 제거(= 생략)</label>
    <span id="status" class="b64-badge" aria-live="polite"></span>
  </div>

  <textarea id="b64in" class="b64-io" placeholder="여기에 텍스트 또는 Base64를 입력하세요"></textarea>

  <div class="b64-row">
    <button type="button" id="btn-enc">인코딩</button>
    <button type="button" id="btn-dec">디코딩</button>
    <button type="button" id="btn-clear">초기화</button>
    <button type="button" id="btn-copy">결과 복사</button>
    <button type="button" id="btn-paste">붙여넣기</button>
    <span class="b64-badge">입력 길이: <span id="inlen">0</span></span>
  </div>

  <textarea id="b64out" class="b64-io" placeholder="결과 출력"></textarea>

  <div class="b64-row">
    <input type="file" id="file" aria-label="파일 업로드">
    <button type="button" id="btn-enc-file">파일 인코딩</button>
    <button type="button" id="btn-dec-file">결과를 파일로 저장</button>
    <span class="b64-badge">출력 길이: <span id="outlen">0</span></span>
  </div>
</div>

<script>
(function(){
  const $ = (id)=>document.getElementById(id);
  const inEl=$('b64in'), outEl=$('b64out'), status=$('status');
  const urlsafeEl=$('urlsafe'), nopadEl=$('nopad'), fileEl=$('file');
  const inlen=$('inlen'), outlen=$('outlen');

  const toBase64 = (str)=>{
    const bytes=new TextEncoder().encode(str);
    let bin=''; for (const b of bytes) bin+=String.fromCharCode(b);
    return btoa(bin);
  };
  const fromBase64 = (b64)=>{
    const bin=atob(b64);
    const bytes=new Uint8Array([...bin].map(c=>c.charCodeAt(0)));
    return new TextDecoder().decode(bytes);
  };
  const toUrlSafe=(b64)=>{
    b64=b64.replace(/\+/g,'-').replace(/\//g,'_');
    return nopadEl.checked ? b64.replace(/=+$/,'') : b64;
  };
  const fromUrlSafe=(s)=>{
    s=s.replace(/-/g,'+').replace(/_/g,'/');
    // restore padding
    if (s.length%4!==0) s=s.padEnd(s.length+(4-(s.length%4)),'=');
    return s;
  };

  function setStatus(msg,type='info'){
    status.textContent=msg;
    status.style.color = type==='error' ? '#b91c1c' : '#374151';
  }
  function refreshLens(){
    inlen.textContent=(inEl.value||'').length;
    outlen.textContent=(outEl.value||'').length;
  }

  $('btn-enc').onclick=()=>{
    try{
      let b64 = toBase64(inEl.value||'');
      if (urlsafeEl.checked) b64=toUrlSafe(b64);
      outEl.value=b64; setStatus('인코딩 완료'); refreshLens();
    }catch(e){ setStatus('인코딩 오류: '+e.message,'error'); }
  };
  $('btn-dec').onclick=()=>{
    try{
      let s=inEl.value||'';
      if (urlsafeEl.checked || /[-_]/.test(s)) s=fromUrlSafe(s);
      outEl.value=fromBase64(s); setStatus('디코딩 완료'); refreshLens();
    }catch(e){ setStatus('디코딩 오류: 유효한 Base64가 아닙니다.','error'); }
  };
  $('btn-clear').onclick=()=>{ inEl.value=''; outEl.value=''; setStatus('초기화 완료'); refreshLens(); };

  $('btn-copy').onclick=async()=>{
    try{ await navigator.clipboard.writeText(outEl.value||''); setStatus('결과를 복사했습니다'); }
    catch(e){ setStatus('복사 실패: 권한을 확인하세요','error'); }
  };
  $('btn-paste').onclick=async()=>{
    try{ inEl.value=await navigator.clipboard.readText(); setStatus('클립보드에서 붙여넣기 완료'); refreshLens(); }
    catch(e){ setStatus('붙여넣기 실패: 권한을 확인하세요','error'); }
  };

  inEl.addEventListener('input',refreshLens); outEl.addEventListener('input',refreshLens);
  refreshLens();

  // File -> Base64
  $('btn-enc-file').onclick=()=>{
    const f=fileEl.files?.[0]; if(!f){ setStatus('파일을 선택하세요','error'); return; }
    const r=new FileReader();
    r.onload=()=>{ 
      const arr=new Uint8Array(r.result);
      let bin=''; for(const b of arr) bin+=String.fromCharCode(b);
      let b64=btoa(bin); if(urlsafeEl.checked) b64=toUrlSafe(b64);
      outEl.value=b64; setStatus(`파일 인코딩 완료: ${f.name}`); refreshLens();
    };
    r.onerror=()=>setStatus('파일 읽기 실패','error');
    r.readAsArrayBuffer(f);
  };

  // Base64 -> download file
  $('btn-dec-file').onclick=()=>{
    try{
      let s=outEl.value||inEl.value||''; if(!s){ setStatus('디코딩할 Base64가 없습니다','error'); return; }
      if (urlsafeEl.checked || /[-_]/.test(s)) s=fromUrlSafe(s);
      const bin=atob(s);
      const bytes=new Uint8Array([...bin].map(c=>c.charCodeAt(0)));
      const blob=new Blob([bytes],{type:"application/octet-stream"});
      const a=document.createElement('a');
      a.href=URL.createObjectURL(blob); a.download='decoded.bin'; a.click();
      URL.revokeObjectURL(a.href);
      setStatus('파일로 저장 완료'); 
    }catch(e){ setStatus('파일 저장 실패: 유효한 Base64가 아닙니다','error'); }
  };
})();
</script>



<h2 class="wp-block-heading" id="how-to">사용 방법</h2>



<ul class="wp-block-list">
<li><strong>텍스트 인코딩</strong>: 입력 → <em>인코딩</em> 클릭 → 결과 복사.</li>



<li><strong>텍스트 디코딩</strong>: Base64 입력 → <em>디코딩</em> 클릭.</li>



<li><strong>URL‑safe</strong>: + / 를 &#8211; _ 로 바꾸고, 필요 시 패딩(=) 제거.</li>



<li><strong>파일 → Base64</strong>: 파일 선택 → <em>파일 인코딩</em>.</li>



<li><strong>Base64 → 파일</strong>: 결과에 Base64가 있으면 <em>결과를 파일로 저장</em>.</li>
</ul>



<p>Base64 표준과 브라우저 API에 대한 개념은 MDN의 <a href="https://developer.mozilla.org/en-US/docs/Glossary/Base64" target="_blank" rel="nofollow noopener">Base64 용어집</a> 문서를 참고하세요.</p>



<h2 class="wp-block-heading" id="faq">자주 묻는 질문(FAQ)</h2>



<p><strong>Q1. 왜 이전 코드의 <code>escape/unescape</code>를 쓰지 않나요?</strong><br>해당 API는 더 이상 권장되지 않습니다. 본 도구는 <code>TextEncoder/TextDecoder</code>로 UTF-8을 안전하게 처리합니다.</p>



<p><strong>Q2. URL‑safe Base64는 언제 쓰나요?</strong><br>URL 파라미터, 파일명 등에서 <code>+</code>, <code>/</code>, <code>=</code> 문자를 피해야 할 때 사용합니다.</p>



<script type="application/ld+json">
{
  "@context":"https://schema.org",
  "@type":"FAQPage",
  "mainEntity":[
    {
      "@type":"Question",
      "name":"왜 escape/unescape를 쓰지 않나요?",
      "acceptedAnswer":{"@type":"Answer","text":"해당 API는 권장되지 않으며, UTF-8 처리를 위해 TextEncoder/TextDecoder를 사용합니다."}
    },
    {
      "@type":"Question",
      "name":"URL-safe Base64는 언제 쓰나요?",
      "acceptedAnswer":{"@type":"Answer","text":"URL, 파일명 등에서 +, /, = 문자를 피해야 할 때 -와 _를 사용하고 패딩을 제거합니다."}
    }
  ]
}
</script>



<p>관련 도구: <a href="/tools/url-encoder-decoder">URL 인코더/디코더</a>, <a href="/tools/hash-generator">해시 생성기(SHA-256)</a></p>



<p></p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.ne.kr/base64-encoder-decoder/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
