HTML 전의 문자&npsp;표시 non-breaking space\xa0

4320 단어 HTML전의 문자\xa0
1.참고
Beautiful Soup and Unicode Problems
자세하게 설명 하 다
unicodedata.normalize('NFKD',string)의 실제 역할 은??
Scrapy : Select tag with non-breaking space with xpath

>>> selector.xpath(u'''
... //p[normalize-space()]
... [not(contains(normalize-space(), "\u00a0"))]
normalize-space()의 실제 역할 은??
In [244]: sel.css('.content')
Out[244]: [https://en.wikipedia.org/wiki/Comparison_of_text_editors
포 지 셔 닝 요 소 는&npsp 로 표 시 됩 니 다.

웹 페이지 소스 코드 는&\#160;

<tr>
<td style="background: #FFD; color: black; vertical-align: middle; text-align: center;" class="partial table-partial">memory</td>
<td>= Limited by available memory &#160;&#160;</td>
<td style="background:#F99;vertical-align:middle;text-align:center;" class="table-no">No (64&#160;KB)</td>
<td>= Some limit less than available memory (give max size if known)</td>
</tr>
</table>
실제 전송 Hex:

끊 임 없 는 빈 칸 의 유 니 코드 는u\xa0'이 고 저장 할 때 인 코딩 utf-8 은'\xc2\xa0'입 니 다.
In [211]: for tr in response.xpath('//table[8]/tr[2]'):
...: print [u''.join(i.xpath('.//text()').extract()) for i in tr.xpath('./*')]
...:
[u'memory', u'= Limited by available memory \xa0\xa0', u'No (64\xa0KB)', u'= Some limit less than available memory (give max size if known)']
In [212]: u'No (64\xa0KB)'.encode('utf-8')
Out[212]: 'No (64\xc2\xa0KB)'
In [213]: u'No (64\xa0KB)'.encode('utf-8').decode('utf-8')
Out[213]: u'No (64\xa0KB)'
csv 를 저장 하고 엑셀 로 직접 열 면 오류 가 발생 합 니 다(기본 ANSI gbk 열기???,u'\xa0'은 gbk 가 인 코딩 할 수 있 는 범 위 를 초과 합 니까???),메모 장 이나 notepad+를 사용 하면 자동 으로 utf-8 로 정상적으로 열 수 있 습 니 다.

메모 장 을 사용 하여 csv 파일 을 열 고 ANSI 인 코딩 으로 저장 한 후 엑셀 이 정상적으로 열 립 니 다.gbk 인 코딩 범 위 를 초과 한'?'

3.어떻게 처리 할 것 인가
.extract_first().replace(u'\xa0', u' ').strip().encode('utf-8','replace')
이상 은 HTML 전의 문자&npsp 입 니 다.non-breaking space\xa0 의 상세 한 내용 을 표시 합 니 다.HTML 전의 문자\xa0 에 관 한 자 료 는 다른 관련 글 을 주목 하 십시오!

좋은 웹페이지 즐겨찾기