HTML转义字符&npsp;表示non-breaking space,unicode编码为u'\xa0',超出gbk编码范围?
0.目录
1.参考
2.问题定位
不间断空格的unicode表示为 u\xa0',超出gbk编码范围?
3.如何处理
.extract_first().replace(u'\xa0', u' ').strip().encode('utf-8','replace')
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]: [<Selector xpath=u"descendant-or-self::*[@class and contains(concat(' ', normalize-space(@class), ' '), ' content ')]" data=u'<p class="content text-
s.replace(u'\xa0', u'').encode('utf-8')
2.问题定位
https://en.wikipedia.org/wiki/Comparison_of_text_editors
定位元素显示为 &npsp;

网页源代码表示为
<tr>
<td style="background: #FFD; color: black; vertical-align: middle; text-align: center;" class="partial table-partial">memory</td>
<td>= Limited by available memory </td>
<td style="background:#F99;vertical-align:middle;text-align:center;" class="table-no">No (64 KB)</td>
<td>= Some limit less than available memory (give max size if known)</td>
</tr>
</table>
实际传输Hex为:

不间断空格的unicode表示为 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 直接使用 excel 打开会有乱码(默认ANSI gbk 打开???,u'\xa0' 超出 gbk 能够编码范围???),使用记事本或notepad++能够自动以 utf-8 正常打开。

使用记事本打开csv文件,另存为 ANSI 编码,之后 excel 正常打开。超出 gbk 编码范围的替换为'?'

3.如何处理
.extract_first().replace(u'\xa0', u' ').strip().encode('utf-8','replace')
HTML转义字符&npsp;表示non-breaking space,unicode编码为u'\xa0',超出gbk编码范围?的更多相关文章
- unicode可以通过编码(encode)成为特定编码的str
1.原始字符串python中的原始字符串以r开头,使用原始字符串可以避免字符串中转义字符带来的问题,例如写路径时 path = 'c:\noway',此时用 print path,其结果为:c:owa ...
- Unicode规范中的BOM 和 ISO8891-1编码
Unicode规范中的BOM Unicode规范中有一个BOM的概念.BOM——Byte Order Mark,就是字节序标记.在这里找到一段关于BOM的说明: 在UCS 编码中有一个叫做" ...
- 关于utf8 unicode gbk 编码乱码汇总
首先从一个问题说起: 插入一个中文到blob类型(mysql编码是utf-unicode-ci). insert into blobtype(data) values('中文你好') 复制数据显示为 ...
- 第48篇 字符编码探密--ASCII,UTF8,GBK,Unicode
原文地址:http://blog.laofu.online/2017/08/22/encode-string/ ASCII 的由来 在计算机的“原始社会”,有人想把日常的使用的语言使用计算机来表示, ...
- 编码(1)学点编码知识又不会死:Unicode的流言终结者和编码大揭秘
学点编码知识又不会死:Unicode的流言终结者和编码大揭秘 http://www.freebuf.com/articles/web/25623.html 如果你是一个生活在2003年的程序员,却不了 ...
- 编码标准:ASCII、GBK、Unicode(UTF8、UTF16、UTF32)
英文编码(单字节字符集,码值范围0~127):字节最高位是0 ASCII编码,用于英文字符.中文编码(双字节字符集):首字节(8位)的最高位是1.可依据首字节最高位来判断中英文. GB2312, 旧版 ...
- [转]各种编码ANSI、GB2312、GBK、GB18030、UNICODE以及UTF-8傻傻分不清!
计算机编程中的编码一直是让新手非常头疼的问题,特别是 GBK.GB2312.UTF-8 这三个比较常见的网页编码的区别,更是让许多新手晕头转向,怎么解释也解释不清楚,看一遍貌似懂了,但实际使用的时候又 ...
- 文字编码ASCII,GB2312,GBK,GB18030,UNICODE,UCS,UTF的解析
众所周知,一个文字从输入到显示到存储是有一个固定过程的,其过程为:输入码(根据输入法不同而不同)→机内码(根据语言环境不同而不同,不同的系统语言编码也不一样)→字型码(根据不同的字体而不同)→存储码( ...
- Ascii码 unicode码 utf-8编码 gbk编码的区别
ASCII码: 只包含英文,数字,特殊符号的编码,一个字符用8位(bit)1字节(byte)表示 Unicode码: 又称万国码,包含全世界所有的文字,符号,一个字符用32位(bit)4字节(byte ...
随机推荐
- codeforces 786E ALT
题目链接:CF786E 输出方案暗示网络流 我们考虑最朴素的建图 由源点\(s\)连向所有人,容量为1:树上所有的边视作节点连向\(t\),流量为1:人向其路径上所有的树边连边,流量为\(inf\), ...
- .Net Core实践2 sqlite
目标 使用.netcore项目在Linux上运行sqlite 环境 .netcore2.1 / centos7 / win10 / vs2017 / sqlite3 sqlite库还是这个System ...
- deepin安装mysql记录
本文转载自http://www.linuxidc.com/Linux/2016-07/133128.htm sudo apt-get install mysql-server apt-get isnt ...
- python中的装饰器迭代器生成器
装饰器: 定义:本质是函数(装饰其它函数) 为其它函数添加附加功能 原则: 1 不能修改被装饰函数源代码 2 不修改被装饰函数调用方式 实现装饰器知识储备: 1 函数即‘’变量‘’ 2 高阶函数 ...
- 数据库导出excel,前后端分离
主要参考了这篇博文:https://www.cnblogs.com/jerehedu/p/4343509.html 2.3和2.4 采用xssf,依赖:compile group: 'org.apa ...
- CMDB资产管理系统开发【day25】:表结构设计2
表结构设计1详细注释代码 # _*_coding:utf-8_*_ __author__ = 'luoahong' from assets.myauth import UserProfile from ...
- 在Spring框架中bean配置文件中constructor-arg标签中没有name元素?
bean配置文件出现错误的依赖: <beans <beans xmlns="http://www.springframework.org/schema/beans" ...
- scala使用slick查询的全过程(使用cass class)
1. 首先导包 <dependency> <groupId>com.typesafe.slick</groupId> <artifactId>slick ...
- Matplotlib画图详解
from matplotlib import pyplot as plt #调节图形大小,宽,高 plt.figure(figsize=(6,9)) #定义饼状图的标签,标签是列表 labels = ...
- visual studio code运行时报错,Cannot find module 'webpack'
前言 今天运行是visual studio code时,报了一个错误Cannot find module 'webpack' ,网上找了很多方法都没解决.下面一起来看看怎么解决 正文 报错: npm ...