 |
|
이전 주제 보기 :: 다음 주제 보기 |
글쓴이 |
메시지 |
구상준
가입: 2009년 9월 18일 올린 글: 27
|
올려짐: 2010년9월10일 2:39 주제: 한국어 문제점 |
|
|
let some = [(0,"") ; (1,"일") ; (2,"이") ; (3,"삼") ; (4,"사") ; (5,"오"); (6,"육") ;(7,"칠");(8,"팔");(9,"구")];;
제가 앞에서 이렇게 선언해놓았습니다.
그런데 ocaml로 실행시켜볼 때
some ;; 에서 나오는 값과
실제로 "팔";; 을 쳤을 때 나오는 값이 다릅니다.
무슨 말인고하니, some;;을 하면
[(0, ""); (1, "\192\207"); (2, "\192\204"); (3, "\187\239"); (4, "\187\231");
(5, "\191\192"); (6, "\192\176"); (7, "\196\165"); (8, "\198\200");
와 같은 형식으로 나오지만
"팔";; 하면 : - string = "\237\140\148" 과 같은 값이 나옵니다.
위의 8자리에 있었던 한글의 값과 다른 값이 나오며
print_string으로 찍어보면 이상하게 나옵니다.
추가 질문 10일 오전 10시 19분에 추가됨.
만약 1000-2000 이라고 된 전화번호가 있으면
[["천"] ["이";"천"]] 이라고 해야하나요?
[["일";"천"] ["이";"천"]]이라고 해야하나요? |
|
위로 |
|
 |
안준환
가입: 2010년 9월 2일 올린 글: 12
|
올려짐: 2010년9월10일 10:50 주제: Re: 한국어 문제점 |
|
|
구상준 씀: | let some = [(0,"") ; (1,"일") ; (2,"이") ; (3,"삼") ; (4,"사") ; (5,"오"); (6,"육") ;(7,"칠");(8,"팔");(9,"구")];;
제가 앞에서 이렇게 선언해놓았습니다.
그런데 ocaml로 실행시켜볼 때
some ;; 에서 나오는 값과
실제로 "팔";; 을 쳤을 때 나오는 값이 다릅니다.
무슨 말인고하니, some;;을 하면
[(0, ""); (1, "\192\207"); (2, "\192\204"); (3, "\187\239"); (4, "\187\231");
(5, "\191\192"); (6, "\192\176"); (7, "\196\165"); (8, "\198\200");
와 같은 형식으로 나오지만
"팔";; 하면 : - string = "\237\140\148" 과 같은 값이 나옵니다.
위의 8자리에 있었던 한글의 값과 다른 값이 나오며
print_string으로 찍어보면 이상하게 나옵니다. |
파일 인코딩은 EUC-KR(혹은 CP949)로 되어 있고 실행 환경은 UTF-8을 사용하는 문제인 것 같네요.
파일을 UTF-8로 저장하시면 될 것 같습니다. ( vim을 사용하는 경우 :set fenc=utf-8 )
구상준 씀: | 만약 1000-2000 이라고 된 전화번호가 있으면
[["천"] ["이";"천"]] 이라고 해야하나요?
[["일";"천"] ["이";"천"]]이라고 해야하나요? |
https://ropas.snu.ac.kr/phpbb/viewtopic.php?p=6136#6136
또한 숙제 페이지에 나온 예에서 8801857을 [["팔"; "백"; "팔"; "십"]; ["천"; "팔"; "백"; "오"; "십"; "칠"]]로 읽었으니 앞의 것이 맞는 것 같습니다. |
|
위로 |
|
 |
최종욱
가입: 2009년 9월 15일 올린 글: 84
|
올려짐: 2010년9월10일 19:13 주제: |
|
|
제가 앞에서 한번 질문한 적이 있었는데요, 이는 파일 인코딩 문제가 아닙니다.
UTF-8 환경에서 작업해도 인터프리터 상에서는 저렇게 바이트...로 나옵니다-_-;
그래서 디버그 (또는 확인/테스트)를 하기 위해서는 직접 함수를 만들어 줘야 합니다.
예를 들면
코드: | let debug x = match x with
[a; b] -> print_string ((String.concat "" a) ^ " " ^ (String.concat "" b) ^ "\n")
|
이렇게요. _________________ Jongwook Choi
Seoul National University, School of Computer Science & Engineering |
|
위로 |
|
 |
안준환
가입: 2010년 9월 2일 올린 글: 12
|
올려짐: 2010년9월10일 19:31 주제: |
|
|
최종욱 씀: | 제가 앞에서 한번 질문한 적이 있었는데요, 이는 파일 인코딩 문제가 아닙니다.
UTF-8 환경에서 작업해도 인터프리터 상에서는 저렇게 바이트...로 나옵니다-_-;
그래서 디버그 (또는 확인/테스트)를 하기 위해서는 직접 함수를 만들어 줘야 합니다.
예를 들면
코드: | let debug x = match x with
[a; b] -> print_string ((String.concat "" a) ^ " " ^ (String.concat "" b) ^ "\n")
|
이렇게요. |
저는 원 글에서 구상준씨께서 "팔"을 인터프리터에서 입력하면 "팔"의 UTF-8 표현인 "\237\140\148"이 출력되지만 some을 출력하면 "팔"의 EUC-KR 바이트열인 "\198\200"이 출력된다고 하셔서 파일 인코딩과 출력 인코딩이 맞지 않아서 발생하는 문제로 판단했습니다. 또한 윗 글에서 print_string으로 출력해 보면 이상하게 나온다고도 말씀하셨고요. |
|
위로 |
|
 |
구상준
가입: 2009년 9월 18일 올린 글: 27
|
올려짐: 2010년9월10일 21:38 주제: 안준환님께서 답변을 정확하게 해주셨습니다. |
|
|
제가 확인해보니까 적어도 저의 경우는
파일 인코딩 때문에 발생한 문제였습니다. |
|
위로 |
|
 |
최종욱
가입: 2009년 9월 15일 올린 글: 84
|
올려짐: 2010년9월11일 3:22 주제: |
|
|
아, 제가 잠시 착각을 한 것 같습니다. 지적 감사드립니다~ _________________ Jongwook Choi
Seoul National University, School of Computer Science & Engineering |
|
위로 |
|
 |
|
|
새로운 주제를 올릴 수 없습니다 답글을 올릴 수 없습니다 주제를 수정할 수 없습니다 올린 글을 삭제할 수 없습니다 투표를 할 수 없습니다
|
Powered by phpBB 2.0.21-7 (Debian) © 2001, 2005 phpBB Group Translated by kss & drssay
|