Python HTML Yattag 的重音标记问题,请控制
Python HTML Accent mark issues with Yattag, dominate
希望我能在这里找到一些答案。我正在尝试用 python 3 编写 html。
我已经尝试过 yattag 和 dominate 模块,但是我都遇到了同样的问题:当我尝试将我的代码内容写入 HTML 文件时,生成的文档不显示带有重音符号的字母,而是显示一个黑色小图形中的问号。 (见底部图片)
我的代码是这样的。
使用支配:
import dominate
import dominate.tags as tg
#an example doc
_html = tg.html(lang='es')
_head = _html.add(tg.head())
_body = _html.add(tg.body())
with _head:
tg.meta(charset="UTF-8") #this line seems to be the problem
with _body:
tg.p("Benjamín")
print(_html)
#when I print to console, the accent mark in the letter 'í' is there but...
#when I write the file, the weird character is displayed
with open("document.html", 'w') as file:
file.write(_html.render())
同样使用 yattag
from yattag import Doc
#another example doc
doc, tag, text = Doc().tagtext()
with tag("html", "lang='es'"):
with tag("head"):
doc.stag("meta", charset="UTF-8") #this line seems to be the problem
with tag("body"):
text("Benjamín")
#when I print to console, the accent mark in the letter 'í' is there but...
#when I write the file, the weird character is displayed
with open("document2.html", 'w') as file:
file.write(doc.getvalue())
因此,当我在这两种情况下都更改或删除字符集时,问题似乎就消失了。
我用最后两行来写简单的文档,我猜每个人都是这样,重音符号没有问题。
问题似乎是导入的模块如何管理字符集以显示页面内容。好吧,我不知道。你知道有什么办法可以解决这个问题吗?
希望你过得很好。谢谢。
您可以在 open
文件时使用 encoding
参数:
with open("document2.html", 'w', encoding='utf-8') as file:
专业提示:您可以使用 errors
参数定义错误情况下的行为:
with open("document2.html", 'w', encoding='utf-8', errors='ignore') as file:
希望我能在这里找到一些答案。我正在尝试用 python 3 编写 html。 我已经尝试过 yattag 和 dominate 模块,但是我都遇到了同样的问题:当我尝试将我的代码内容写入 HTML 文件时,生成的文档不显示带有重音符号的字母,而是显示一个黑色小图形中的问号。 (见底部图片)
我的代码是这样的。
使用支配:
import dominate
import dominate.tags as tg
#an example doc
_html = tg.html(lang='es')
_head = _html.add(tg.head())
_body = _html.add(tg.body())
with _head:
tg.meta(charset="UTF-8") #this line seems to be the problem
with _body:
tg.p("Benjamín")
print(_html)
#when I print to console, the accent mark in the letter 'í' is there but...
#when I write the file, the weird character is displayed
with open("document.html", 'w') as file:
file.write(_html.render())
同样使用 yattag
from yattag import Doc
#another example doc
doc, tag, text = Doc().tagtext()
with tag("html", "lang='es'"):
with tag("head"):
doc.stag("meta", charset="UTF-8") #this line seems to be the problem
with tag("body"):
text("Benjamín")
#when I print to console, the accent mark in the letter 'í' is there but...
#when I write the file, the weird character is displayed
with open("document2.html", 'w') as file:
file.write(doc.getvalue())
因此,当我在这两种情况下都更改或删除字符集时,问题似乎就消失了。 我用最后两行来写简单的文档,我猜每个人都是这样,重音符号没有问题。 问题似乎是导入的模块如何管理字符集以显示页面内容。好吧,我不知道。你知道有什么办法可以解决这个问题吗? 希望你过得很好。谢谢。
您可以在 open
文件时使用 encoding
参数:
with open("document2.html", 'w', encoding='utf-8') as file:
专业提示:您可以使用 errors
参数定义错误情况下的行为:
with open("document2.html", 'w', encoding='utf-8', errors='ignore') as file: