Stty특수문자지정 › FootNoteMacro › AppleMagicTrackpad2ForUbuntu20.04.1 › 웹표준-PracticalCssTips › HelpOnMacros › convenc
이번에 위키의 characterset을 euc-kr에서 utf-8로 변경했습니다. 이제까지 작성했던 많은 글들이 다 euc-kr로 되어 있어 변경하는 프로그램을 하나 만들었습니다. 사실 모든 건 jvm에서 처리하는 거죠.
convenc.jar (1.75 KB)
kiki.util.ConvEnc.java #
package kiki.util; import java.io.*; import java.nio.charset.Charset; import java.util.Arrays; public class ConvEnc { /** * @param args */ public static void main(String[] args) throws Exception { boolean optShowHelp = false; String inputCharset = null; String outputCharset = null; String strBufSize = null; int paramCount = 0; String[] params = new String[args.length]; for(int i=0; i<args.length; i++){ if(args[i].startsWith("-")){ String optId = "--buffer-size="; if(args[i].startsWith(optId)){ strBufSize = args[i].substring(optId.length()); } else if("-h".equals(args[i])) optShowHelp = true; continue; } params[paramCount++] = args[i]; } if(paramCount<1 || optShowHelp){ showHelp(); return; } Charset csInput = null; Charset csOutput = null; if(paramCount==1) csOutput = Charset.forName(params[0]); if(paramCount>1){ csInput = Charset.forName(params[0]); csOutput = Charset.forName(params[1]); } int bufSize = 1024; try{ bufSize = Integer.parseInt(strBufSize); } catch(NumberFormatException nfe){} InputStreamReader isr = csInput!=null ? new InputStreamReader(System.in, csInput) : new InputStreamReader(System.in); OutputStreamWriter osw = new OutputStreamWriter(System.out, csOutput); char[] buf = new char[bufSize]; int len = -1; while( (len = isr.read(buf, 0, buf.length))>-1 ){ osw.write(buf, 0, len); osw.flush(); } } public static void showHelp() { System.out.println("characterset converter from stdin to stdout"); System.out.println("mail to : kiki@hikiki.net"); System.out.println("usages : java kiki.util.ConvEnc [-h] [--buffer-size=xxxx] [[inCharset] outCharset]"); return; } }
convenc #
unix에서의 사용예제 #
# euc-kr파일을 utf-8로 변환 cat euckr.txt | convenc euc-kr utf-8 # 스크립트 없이 cat euckr.txt | java -jar convenc.jar euc-kr utf-8