2013-02-22 5 views
0

내 프로젝트의 모든 py 스크립트를 utf-8로 인코딩합니다. 응용 프로그램을 자이 썬 2.2.1에서 자이 썬 2.5.2로 확실히 마이그레이션하고 있기 때문입니다. 그런 이유로 모든 py 파일 (#encoding=utf-8)의 첫 줄에 '마법 주석'을 추가했으며 이클립스에서 응용 프로그램을 디버깅하여 모든 내용이 정상인지 여부를 테스트하기 시작했습니다.인코딩 - Pydev가 자동으로 문자를 변경합니다.

straße 문자열을 포함하는 스크립트에 자동으로 straße으로 변환되기 때문에 문제가 발생합니다.

이 변경이 Pydev로 인해 발생했는지 또는 utf-8이 이러한 종류의 문자를 포함하지 않기 때문에 발생하는 것입니까? 아직 발견하지 못한 다른 '이상한'문자열로 자동으로이 문제를 방지하려면 어떻게해야합니까?

답변

0

.py 파일이 UTF-8 인코딩을 사용하고 있습니까? WebBrowser로 텍스트로 열고 다양한 인코딩을 확인하십시오. ß은 2 바이트 (대부분 UTF-8)로 인코딩되지만 실제로는 UTF-8인지 확인하는 경우 straße이 표시되는 것을 볼 수 있습니다.

또한 프로젝트/속성의 Eclipse 설정을 확인하십시오. "텍스트 파일 인코딩"설정을 가진 리소스 패널이 있습니다 (저는 자바 프로젝트에만 Eclipse를 사용하고 Pydev가이 설정을 사용하는지 알지 못합니다). 결과 파일이 UTF-8 텍스트가 포함 된 경우

를 PyDev과 같은 코드를 시도하고 확인 :

# -*- coding: utf8 -*- 

import codecs 

f = codecs.open('strasse.txt', 'wb', 'UTF-8') 
f.write('straße'.decode('UTF-8')) 
f.close() 
0

내 생각 엔 기본 창이다, 그 파일 (예를 들어 CP1252에서 다른 인코딩을 가지고 있다는 것입니다 인코딩) 그리고 utf-8을 넣었을 때 문자가 깨져 버렸습니다 (실제로 PyDev가 왜곡 된 것은 아니지만 이전에 다른 인코딩에 있었던 사실이었습니다). 당신이 그것에있는 동안

, 또한 당신은 또한 (기본 플랫폼 인코딩이 보통이다) UTF-8 이클립스의 기본 인코딩을 설정해야합니다 - 당신이 환경 설정> 일반> 작업 공간에서이 작업을 수행 할 수 있습니다.

는 참고로, 그 의견을 퍼팅의 가장 일반적인 방법은 다음, #coding: utf-8이라고 생각 #-*- coding: utf-8 -*- (즉 :하지 #encoding:utf-8를) - 모든 형식의 작업 (PEP 참조 : https://www.python.org/dev/peps/pep-0263/)하지만

관련 문제