问题描述
所以让我开始说,我对字符编码了解不多。我正在使用folium在网页上嵌入folium渲染的地图,以显示Twitter趋势。但是,由于编码方式不正确,因此不会显示其他语言。我试图在他们的GitHub上查找问题。根据问题17,此问题已解决。虽然不是。
我的脚本获取我存储在数据库中的趋势,并将其插入到弹出窗口中。
'''
if connector.is_connected():cursor = connector.cursor()
query = 'SELECT * FROM trendsincities'
cursor.execute(query)
response = cursor.fetchall()
cursor.close()
connector.close()
for i,city in enumerate(response):
try:
folium.Marker([round(city[4],2),round(city[5],2)],popup = '<i>{} <i>'.format(city[6].split(' ')[:10]),tooltip = tooltip).add_to(m)
except Exception as e: print(e)
final_display = m._repr_html_()
print(final_display)
env = Environment( loader=PackageLoader('app','templates'),autoescape=select_autoescape(['html','xml']) )
template = env.get_template('trends.html')
map = template.render(map=final_display)
return map
'''
这是来自folium依赖项的函数_repr_html()-“ branca”
'''
def _repr_html_(self,**kwargs):
"""displays the figure in a Jupyter notebook."""
# Base64-encoded HTML is stored in a data-html attribute,which is used to populate
# the iframe. This approach does not encounter the 2MB limit in Chrome for storing
# the HTML in the src attribute with a data URI. The alternative of using a srcdoc
# attribute is not supported in Microsoft Internet Explorer and Edge.
***html = base64.b64encode(self.render(**kwargs).encode('utf8')).decode('utf8')***
onload = (
'this.contentDocument.open();'
'this.contentDocument.write(atob(this.getAttribute(\'data-html\')));'
'this.contentDocument.close();')
'''
有人可以解释这里到底发生了什么(用粗体显示)
UTF-8编码不适用于外语吗?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)