문자열에서 바이트 순서 표시를 제거해야합니다. BOM을 찾을 코드가 이미 있지만 실제 문자열에서 제거해야합니다.파이썬의 문자열에서 처음 2 바이트 제거
예를 들어 설명해주십시오. BOM은 feff
이고 길이가 2 바이트이므로 문자열의 처음 2 바이트가 최종 문자열에 나타나서는 안됩니다. 그러나 파이썬 문자열 스트립 핑을 사용하면 문자열에서 너무 많은 스트립이 제거됩니다.
코드 스 니펫 :
print len(bom)
print as_hex(bom)
print string
print as_hex(string)
string = string[len(bom):]
print string
print as_hex(string)
출력 :
2
feff
Organ
feff4f7267616e
rgan
7267616e
무엇을 얻을 수 있도록 노력하겠습니다 것은 :
2
feff
Organ
feff4f7267616e
Organ
4f7267616e
as_hex()
기능은 단지 진수로 문자를 출력 ("".join('%02x' % ord(c) for c in bytes
)) .
사용중인 'bom' 변수는 무엇입니까? 길이가 틀린 것 같습니다. – BrenBarn
'len (bom)'을 인쇄 해 보셨습니까? – Rubens
4 자리 16 진수 문자는 실제로 2 바이트입니다. 왜 네가 스트라이핑을하는거야? – goncalopp