여러분 안녕하십니까.python - 비 ASCII 문자를 특정 문자로 변환
입력란에는 iso-8859-1 html 파일이 있고 ASCII가 아닌 문자 대신 html 엔티티가 있습니다. 이는 깔끔합니다. 한 문자 만 제외하고 - (00C9 유니 코드 코드 포인트, 표시되지 않는 경우). 나는 그것을 "oe"로 바꾸고 싶다.
는 이미 의 iconv -f ISO-8859-1 -t 아스키 // 음역하여를 시도했지만 문제가있는 문자를 찢고 그 자리에 아무것도 넣어 나던.
파이썬 2.7에서 작동하고 디코드, 인코딩, 코덱 등 여러 가지를 시도했지만 어디에도 가지 않았습니다. 내가 "아스키 코덱 캔트 인코딩 문자 유 x9c \"오류가
i=0
for file in os.listdir(dir_in):
i+=1
file=codecs.open(dir_in+file,"r","iso-8859-1")
out=codecs.open(dir_out+str(i)+".html","w","utf-8")
for line in file:
#at this point the type of line is "unicode"
line=line.decode("iso-8859-1",errors="replace")
out.write(line)
file.close
out.close
(I 문제가 제대로 들여 쓰기 표시를하고있다하지만이 부분은 괜찮 당신을 확신) : 다음은이 시점에서 내 코드입니다. 내가 적절하게 디코딩을 사용하는지 잘 모르겠습니다.
나는 또한 시도 : 날 수 있습니다
line=unicode(line, errors="replace")
을 (그것 같아요 어떻게해야 무엇 인) 교체없이 문자를 제거한다
line=unicode(line)
"형식 오류 : 디코딩 유니 코드 지원되지 않습니다. " 나는 이미"유니 코드 "에 유니 코드를 부여하지 않기 때문에이 두 가지 작업을 수행하지 않았다고 가정합니다.
bash 나 perl에서도 간단한 방법을 사용하면 관심이 있지만, python 3을 사용할 수 없으므로 서버에서 지원하지 않습니다.
고맙습니다.
O-좋아 그냥 내가이 처음 시도 확신 때문에 충분히 잠을 didnt가 가정 해 봅시다. 어쨌든, 이것은 잘 작동합니다! 고마워요! –
@PetitLama 좋아요! 원할 경우 [내 대답 수락] (http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work)을 통해 문제를 해결 된 것으로 표시 할 수 있습니다. – dano
문제를 해결 방법으로 표시하는 방법을 궁금해 할 때 감사합니다. 그것이 내가 도움이되는 대답이다. –