在Python中,` `会被BeautifulSoup解析为Unicode字符`\xa0`(即不换行空格),但默认情况下`print()`会将其显示为普通空格。要直接输出`\xa0`字符串而不是转义后的空格,需要对字符串进行编码处理。 解决方案 ```python import html from bs4 import BeautifulSoup html_content = "压缩天然气储运,减压,燃烧都在严格的密封状态下进行,不易发生泄露。 另外其储气瓶经过各种特殊的破坏性试验,安全可靠。" soup = BeautifulSoup(html_content, "html.parser") text = soup.get_text() # 方法1:直接替换空格为\xa0(不推荐,可能影响其他正常空格) # text = text.replace(" ", r"\xa0") # 方法2:编码为原始unicode转义形式(推荐) raw_text = text.encode('unicode-escape').decode('ascii') print(raw_text) ``` 关键点说明 1. `unicode-escape`编码会将Unicode字符转换为其转义序列形式(如`\xa0`) 2. 直接打印时Python会解释`\xa0`为实际的不换行空格字符 3. 使用`repr()`函数也可以显示转义序列,但会包含额外的引号 注意事项 1. 如果只需要处理` `,可以直接在原始HTML文本中替换` `为`\xa0`字符串 2. 考虑最终使用场景,某些情况下可能需要保持`\xa0`作为实际字符而非字符串 3. 处理HTML实体时注意其他可能存在的实体字符(如`&`、`<`等) [2025-04-16 17:09:02 | AI写代码神器 | 371点数解答]