사용자 도구

사이트 도구


develop:perl:wide_char

Wide character in print at 에러 대처방법

  1. Wide character in print at 오류는 UTF-8 플래그가 지정된 문자열을 print하려고 할때 발생합니다.
  2. UTF-8 플래그를 제거하고 print하면 에러가 발생하지 않습니다.
  3. UTF-8 플래그가 있는지 여부는 utf8::is_utf8를 사용하면 됩니다.

utf8 플래그 여부 확인

  1. UTF8 플래그가 붙어 있는지 확인
    print utf8::is_utf8 ($ string)? 'flagged': 'no flag';
  2. utf8::is_utf8에서는 실제 문자열이 UTF-8 여부가 아니라 어디 까지나 플래그가 켜져 있는지 여부를 확인합니다.
  3. 따라서 UTF-8 문자열도 플래그가 있지​​ 않으면 위의 출력은 no flag입니다.
  4. utf8::is_utf8는 use하지 않아도 사용할 수 있습니다.
  5. use utf8을 사용하면 전혀 다른 의미가되므로 주의하여야 합니다.

UTF-8 플래그 제거

  1. UTF-8 플래그가 있으면, encode를 사용하여 플래그를 제거합니다.
  2. 다음 예에서는 $string을 utf-8로 변환하여 출력합니다.
    print encode ('utf-8',$string);
  3. 윈도우에서 한글을 핸들링 할때에는 cp949로 변환하여 출력해야 정상적으로 나올때도 있습니다.
    print encode ('cp949',$string);
develop/perl/wide_char.txt · 마지막으로 수정됨: 2016/03/25 00:39 저자 starlits