代码之家  ›  专栏  ›  技术社区  ›  Razan Balatiah

如何解决UnicodeEncode问题

  •  -1
  • Razan Balatiah  · 技术社区  · 6 年前

    我使用python2。7使用flask框架,我尝试从Html页面的textarea中获取文本并将其存储在文本文件中,如果文本是用英语编写的,它会成功工作,但我需要使其适用于阿拉伯语文本。 我尝试了许多解决方案,但没有结果!!

    我能做什么!!这是代码。

           # -*- coding: cp1256-*-
           from flask import Flask, render_template, request
           import jinja2
           import os
           import codecs 
           os.chdir("C:\Python27")
           app = Flask(__name__)
           @app.route("/")
           def hello():
               return render_template("razan.html")
           @app.route('/submit', methods=['POST'])
           def submit_textarea():
               text = request.form.get("text")
               with open('aaa.txt','w') as outfile:
                    outfile.write(text)
               return  render_template("razan.html")
    
           if __name__ == "__main__":
                  app.run(host="0.0.0.0", port=int("3000"), debug=True)
    

    这是HTML代码:

      <!DOCTYPE html>
      <html>
      <head>
      <meta charset="cp1256">
      </head>
      <body>
    
      <h1>Enter some text</h1>
      <form action="submit" id="textform" method="post" >
         <textarea name="text" type="text"> مرحبا </textarea>
         <button type="submit" value="submit_textarea()" > submt</button> 
      </form>
      </body>
      </html>
    

    它给了我一个错误:

    UnicodeEncodeError:“ascii”编解码器无法对位置1-6中的字符进行编码:序号不在范围内(128)

    1 回复  |  直到 6 年前
        1
  •  0
  •   Shivam Singh    6 年前

    以unicode读取文件

    import codecs
    outfile = codecs.open('aaa.txt', 'w', 'utf-8')
    outfile.write(text)