
iconv
iconv는 Linux(및 유닉스 계열 시스템)에서
텍스트를 한 문자 인코딩에서 다른 문자 인코딩으로 변환하는
표준 유틸리티임.
Converts text from one encoding to another encoding.
참고로 iconv는 Windows 네이티브(cmd / PowerShell) 기본 명령이 아니며,
WSL·MSYS2·Git Bash·Cygwin 같은 Unix 계층에서 제공됨.
사용예
WSL에서 한글이 포함되어 utf-8 로 인코딩된 파일의 내용을 clip.exe 를 사용하여 클립보드로 복사시 한글이 깨짐.
이같이 깨지는 것을 막기 위해서는 다음과 같이 iconv 로 인코딩 변경한 뒤 전달하면 된다.
iconv -f utf-8 -t utf-16le test.py | clip.exe
clip.exe가CF_UNICODETEXT형식(UTF-16 Little Endian,utf-16le)로 인코딩을 가정하고 있기 때문임.
|는 pipe로 앞의 출력을 뒤의 입력으로 연결하는 방법임:
2023.09.12 - [Linux] - [Linux] Pipe(|)와 다중 명령어 (;, &&, ||)
[Linux] Pipe(|)와 다중 명령어 (;, &&, ||)
| : PipePipe |는 2개의 processes를 연결해주는 연결 통로로서pipe 앞의 프로세스의 stdout(표준출력)이pipe 뒤의 프로세스의 stdin(표준입력)으로 쓰이도록 연결해주는 것임. 예를 들어 ls|sort|more의 경우 ls
ds31x.tistory.com
참고: clip.exe
clip.exe 는 Windows에서 제공하는 명령행 유틸리티로,
표준 입력(stdin)으로 전달된 텍스트를 Windows 클립보드에 복사하는 역할을 수행.
- 내부적으로 Windows 클립보드의
CF_UNICODETEXT(UTF-16LE) 형식을 사용 UTF-8입력을 직접 처리하는 데에는 한계가 있음
따라서 WSL 등에서 UTF-8 텍스트를 전달할 경우,
사전에 UTF-16LE로 변환하여 전달하는 것이 안전한 사용 방법
macOS에선 pbcopy 이 대응되고, Linux (X11)에선 xclip이 대응됨:
- 이들은 내부적으로 처리해서
iconv를 쓰지 않아도 UTF-8은 잘 처리함.
| OS | Copy | Paste |
| Windows (cmd) | clip.exe |
없음 |
| Windows (PowerShell) | Set-Clipboard |
Get-Clipboard |
| macOS | pbcopy |
pbpaste |
| Linux (X11) | xclip -sel clip |
xclip -o -sel clip |
| Linux (Wayland) | wl-copy |
wl-paste |
다음의 명령어 사용 예들을 참고.
# Windows
type test.txt | clip.exe
# Powershell
Get-Content test.txt | Set-Clipboard
Get-Clipboard | Out-File pasted.txt -Encoding utf8
# macOS
cat test.py | pbcopy
pbpaste > pasted.txt
# pdpaste는 기본으로 utf8출력이라 iconv불필요.
# 만약 필요하다면 다음 참고
pbpaste | iconv -f utf-8 -t utf-8 > pasted.txt
# Linux
cat test.py | xclip -selection clipboard
# command | xclip -sel clip
xclip -o -selection clipboard > pasted.txt
# # 명시적 형변환 (보통 utf-9은 문제 없음)
# xclip -o -selection clipboard | iconv -f utf-8 -t utf-8 > pasted.txt
>는 redirection 을 의미
2023.10.02 - [Linux] - [Bash] 입출력 목적지 변경하기 : Redirection Operation
[Bash] 입출력 목적지 변경하기 : Redirection Operation
stdout (표준출력, 1), sdtin(표준입력, 0), stderr(표준에러, 2)을 redirection하는 방법에 대한 문서서버에서 백그라운드로 명령어 수행시 출력이나 error 메시지 등을 stdout이 아닌 file에 남길 때 유용.redirec
ds31x.tistory.com
다음은 Python에서 clipboard를 사용하는 방식을 다룬 URL임:
2025.08.06 - [Python] - pyperclip-Python에서 clipboard사용하기
참고: Microsoft Win32 문서 기준:
CF_TEXT- ANSI 코드페이지 기반, 1바이트 문자
CF_UNICODETEXT- 16-bit Unicode text (UTF-16LE)
Powershell의
set-clipboard를 사용하면iconv가 필요없음.
Powershell은 내부적으로 UTF-16(.NET string)으로 처리함.
같이 보면 좋은 자료들
https://dsaint31.me/mkdocs_site/CE/ch01/code_for_character/
BME
Codes for Characters Code 란 특정 형태의 information을 다른 방법으로 표현하는 규칙 또는 해당 규칙으로 표현된 결과물 을 가리킴. 문자를 나타내기 위한 code는 인간이 사용하는 문자 를 일종의 기호 또
dsaint31.me
[cmd] command prompt 연습하기 (file, dir 사용하기)
CMD 프롬프트 기초 튜토리얼: 파일 및 디렉토리 다루기1. CMD 프롬프트 열기Windows 키 + R을 눌러 실행 창을 엽니다.cmd를 입력하고 Enter를 누릅니다.기본적으로 현재 User의 home 디렉토리를 cwd (current wo
ds31x.tistory.com
'shell' 카테고리의 다른 글
| grep (Global Regular Expression Print) (0) | 2025.12.31 |
|---|---|
| PowerShell의 초기화-profile (0) | 2025.12.31 |
| kill: Process에게 Signal을 보내기. (3) | 2025.07.25 |
| Shell 함수 기본: bash, zsh에서 함수 사용하기 (3) | 2025.07.25 |
| Shell Script Conditionals(조건문)-test, [], [[]],(()) (1) | 2025.07.25 |