在使用Streamlit制作一个NLP模型(自然语言处理模型)应用的时候,发现输出的中文是乱码,用百度和bing搜索,都没有在第一页找到答案。问ChatGPT,它提示用io库的ByteIO处理一下。问百度文心一言,它说检查文件编码格式。好吧,都不太准确。
自己去看源代码,发现输出的str字符串有这样一句处理:
if st.button('🧠 Think'):answer = get_answer(question_text_area)escaped = answer.encode('utf-8').decode('unicode-escape')# Display answerst.caption("Answer :")st.markdown(escaped)
感觉先encode再decode在python3下根本没有必要啊!将这句注释掉,改成:
if st.button('🧠 Think'):answer = get_answer(question_text_area)# escaped = answer.encode('utf-8').decode('unicode-escape')escaped = answer# Display answerst.caption("Answer :")st.markdown(escaped)
也就是去掉了编码和解码,重新执行:
treamlit run app_streamlit.py
哇,终于解决了streamlit下的中文乱码问题了。
本文链接:https://my.lmcjl.com/post/7092.html
展开阅读全文
4 评论