JAVA error: unmappable character for encoding UTF-8

1 minute read

spring-boot ν”„λ‘œμ νŠΈλ₯Ό debug 둜 μ‹€ν–‰ν•˜λ©΄ λ™μž‘μ„ ν•˜μ§€λ§Œ gradle 둜 λΉŒλ“œλ₯Ό ν•˜λ©΄ λ‹€μŒκ³Ό 같은 인코딩 였λ₯˜κ°€ λ°œμƒν•˜μ˜€λ‹€

Controller.java:21: error: unmappable character for encoding UTF-8
 * @author ε μ™μ˜™ε μ™μ˜™ε μ™μ˜™
           ^

ν•œκΈ€ 주석이 κΉ¨μ§€λŠ” κ²ƒμœΌλ‘œ λ³΄μ΄λŠ” 데
unmappable character for encoding UTF-8 이 μ—λŸ¬ λ©”μ‹œμ§€λ‘œ ꡬ글링을 해보면
IDE의 ν™˜κ²½ μ„€μ •μ΄λ‚˜ build.gradle μ—μ„œ encoding μ˜΅μ…˜μ„ λ³€κ²½ν•˜λŠ” κ²ƒμœΌλ‘œ ν•΄κ²°ν•˜λΌκ³  ν•œλ‹€

μ•„λ§ˆ λŒ€λΆ€λΆ„ ν•΄κ²° λ˜κ² μ§€λ§Œ λ‚˜μ˜ κ²½μš°λŠ”β€¦ κ·Έλ ‡μ§€ λͺ»ν•˜μ˜€λ‹€ γ… 
μ–΄μ©Œλ©΄ λ‚˜μ™€ 같은 고생을 ν•˜λŠ” μ‚¬λžŒμ΄ μžˆμ„ 까 ν•˜μ—¬ 글을 κ³΅μœ ν•œλ‹€β€¦ λˆ„κ΅°κ°€μ—κ² 도움이 되길 γ… 

λ‚˜μ˜ 개발 ν™˜κ²½μ€ λ‹€μŒκ³Ό κ°™λ‹€

  • Windows 10
  • IntelliJ
  • Gradle

μš°μ„  intellij κΈ°μ€€μœΌλ‘œ λΉŒλ“œ μ—λŸ¬ 터미널을 보면 였λ₯˜κ°€ λ‚œ μ†ŒμŠ€μ½”λ“œλ‘œ 이동이 κ°€λŠ₯ν•˜λ‹€

intellij-error.jpg

μ†ŒμŠ€μ½”λ“œλ‘œ κ°€λ©΄ μΉœμ ˆν•œ IntelliJ (κ°“κ°“κ°“!!) κ°€ 인코딩을 λ³€κ²½ν•˜λŠ” 것이 μ–΄λ–»κ² λƒλŠ” μ•ˆλ‚΄λ₯Ό ν•΄μ€€λ‹€

intellij-encoding.jpg

그렇닀… 보톡 μ΄λ ‡κ²Œ λ³€κ²½ν•˜λ©΄ IDE 의 μ˜΅μ…˜μ„ λ³€κ²½ν•΄μ£ΌλŠ” 것이닀
그것도 이 파일만!

μ΄λ ‡κ²Œ ν•΄κ²°λ˜λ‚˜ ν–ˆμœΌλ‚˜
λ°°ν¬ν•˜κ³  μžˆλŠ” Jenkins μ—μ„œλŠ” λ™μΌν•œ λΉŒλ“œ 였λ₯˜λ‘œ 배포가 λ˜μ§€ μ•Šμ•˜λ‹€

μ™œλƒν•˜λ©΄,
jenkins 의 λΉŒλ“œ ν™˜κ²½μ€ linux μ˜€κΈ° λ•Œλ¬Έμ—β€¦

해결방법

파일 자체의 인코딩을 UTF-8 둜 λ³€κ²½ν•΄ μ£Όμ–΄μ•Ό ν–ˆλ‹€

방법은 μ•„κΉŒ IntelliJ의 μ•ˆλ‚΄ ν™”λ©΄μ—μ„œ x-windows-949 μΈμ½”λ”©μœΌλ‘œ λ‘œλ“œν•˜κ³  (Reload in β€˜x-windows-949)

reload-x-windows-949.png

ν•œκΈ€ 주석이 잘 λ‚˜μ˜€λŠ” 것을 ν™•μΈν•˜κ³ 

hangul-comment.png

ν•˜λ‹¨μ˜ 인코딩 convert λ²„νŠΌμ„ (λͺ…칭이 이게 λ§žλŠ”μ§€λŠ” 잘 λͺ¨λ₯΄κ² λ‹€) λˆ„λ₯΄κ³ 
UTF-8 을 μ„ νƒν•˜λ©΄ 파일의 일의 인코딩이 x-windows-949 μ—μ„œ UTF-8 둜 λ³€κ²½λœλ‹€

intellij-convert-encoding.jpg

λ™μΌν•œ 였λ₯˜κ°€ λ°œμƒν•˜λŠ” νŒŒμΌμ„ μœ„μ™€ 같은 λ°©λ²•μœΌλ‘œ λͺ¨λ‘ 고치면 μΈμ½”λ”©μœΌλ‘œ μΈν•œ λΉŒλ“œμ˜€λ₯˜λŠ” ν•΄κ²° λœλ‹€

Jenkins μ—μ„œ 배포 λΉŒλ“œλ„ 잘 λœλ‹€ πŸ˜ƒ

Leave a comment