F# 프로그래밍 중에 한글 출력을 시도하였다.
그러나 당연히 되리라고 믿었던 printfn 에 의한 한글 출력이 되지 않았다.

printfn "한글"

이 한 줄 짜리 F# 소스를 컴파일하고 실행하면

???

가 출력된다. 소스를 UTF8 인코딩으로 저장해 보기도 하고, 명령창을 chcp 65001 하여 UTF8 창으로 바꾸어 보기도 하였지만 허사였다.
인터넷 검색을 해보아도 해결책을 찾지 못했다.
아마도 F# 언어를 사용하는 사람들은 적어도 한글을 안써도 되는 듯...
(.NET에서 한글을 못 쓰면 문제가 많을텐데...)

그러나 알고 보면 쉬운 것.
fsc 로 컴파일할 때  --codepage:숫자 옵션으로 인코딩 숫자(예를 들어 949)를 지정하면 된다.

우선 F# 소스를 하나 보자

// 파일명: hello.fs

(* 한글이 있는
   여러 줄
   주석문 *)
printfn "Hello"
printfn "안녕하세요?"

// 한글이 있는 주석문
let a = sprintf "%s을 %s당..." "한글 출력" "연습합니"
printfn "F# 프로그래밍에서 %s" a



컴파일하기:
D:\test\f#>fsc --codepage:949 hello.fs
Microsoft (R) F# 2.0 Compiler build 2.0.0.0
Copyright (c) Microsoft Corporation. All Rights Reserved.

실행하기:
D:\test\f#>hello
Hello
안녕하세요?
F# 프로그래밍에서 한글 출력을 연습합니당...


* 참고: fsi 에서는 한글 입력과 출력이 잘 되지 않는다.


* Visual Studio 통합 환경에서는 한글 문제가 발생하지 않는다.






Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.

Posted by Scripter
,