Skip to main content
Stack Overflow
  1. About
  2. For Teams

Return to Question

added 143 characters in body
Source Link
CoXier
  • 2.7k
  • 9
  • 37
  • 65

There is a json data which contains some Chinese characters.

{
 "font_size": "47",
 "sentences": [
 "你好",
 "sample sentence1",
 "sample sentence2",
 "sample sentence3",
 "sample sentence4",
 "sample sentence5",
 "sample sentence6",
 "sample sentence7",
 "sample sentence8",
 "sample sentence9"
 ]
}

I create a Flask app and use it to receive above json data. I use below curl command to post data.

curl -X POST \
 http://0.0.0.0:5000/ \
 -H 'Cache-Control: no-cache' \
 -H 'Content-Type: application/json;charset=UTF-8' \
 -H 'Postman-Token: af380f7a-42a8-cfbb-9177-74bb348ce5ed' \
 -d '{
 "font_size": "47",
 "sentences": [
 "你好",
 "sample sentence1",
 "sample sentence2",
 "sample sentence3",
 "sample sentence4",
 "sample sentence5",
 "sample sentence6",
 "sample sentence7",
 "sample sentence8",
 "sample sentence9"
 ]
}'

After I receive json data from request.data, I convert it to json, in fact request.data is str.

json_data = json.loads(request.data)

Then I want to format a string with json_data.

subtitles.format(**json_data)

I got an error.

UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-1: ordinal not in range(128)

How to solve it? Thanks in advance.

EDIT

subtitles is read from file.

subtitles_file = "{path}/templates/sorry/subtitles.ass".format(path=root_path)
with open(subtitles_file, 'r') as file:
 subtitles = file.read()

EDIT Python 2 or Python 3

I'm using python 2 and this error occurs. However Python 3 can automatically handle this. So enjoy Python 3.

There is a json data which contains some Chinese characters.

{
 "font_size": "47",
 "sentences": [
 "你好",
 "sample sentence1",
 "sample sentence2",
 "sample sentence3",
 "sample sentence4",
 "sample sentence5",
 "sample sentence6",
 "sample sentence7",
 "sample sentence8",
 "sample sentence9"
 ]
}

I create a Flask app and use it to receive above json data. I use below curl command to post data.

curl -X POST \
 http://0.0.0.0:5000/ \
 -H 'Cache-Control: no-cache' \
 -H 'Content-Type: application/json;charset=UTF-8' \
 -H 'Postman-Token: af380f7a-42a8-cfbb-9177-74bb348ce5ed' \
 -d '{
 "font_size": "47",
 "sentences": [
 "你好",
 "sample sentence1",
 "sample sentence2",
 "sample sentence3",
 "sample sentence4",
 "sample sentence5",
 "sample sentence6",
 "sample sentence7",
 "sample sentence8",
 "sample sentence9"
 ]
}'

After I receive json data from request.data, I convert it to json, in fact request.data is str.

json_data = json.loads(request.data)

Then I want to format a string with json_data.

subtitles.format(**json_data)

I got an error.

UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-1: ordinal not in range(128)

How to solve it? Thanks in advance.

EDIT

subtitles is read from file.

subtitles_file = "{path}/templates/sorry/subtitles.ass".format(path=root_path)
with open(subtitles_file, 'r') as file:
 subtitles = file.read()

There is a json data which contains some Chinese characters.

{
 "font_size": "47",
 "sentences": [
 "你好",
 "sample sentence1",
 "sample sentence2",
 "sample sentence3",
 "sample sentence4",
 "sample sentence5",
 "sample sentence6",
 "sample sentence7",
 "sample sentence8",
 "sample sentence9"
 ]
}

I create a Flask app and use it to receive above json data. I use below curl command to post data.

curl -X POST \
 http://0.0.0.0:5000/ \
 -H 'Cache-Control: no-cache' \
 -H 'Content-Type: application/json;charset=UTF-8' \
 -H 'Postman-Token: af380f7a-42a8-cfbb-9177-74bb348ce5ed' \
 -d '{
 "font_size": "47",
 "sentences": [
 "你好",
 "sample sentence1",
 "sample sentence2",
 "sample sentence3",
 "sample sentence4",
 "sample sentence5",
 "sample sentence6",
 "sample sentence7",
 "sample sentence8",
 "sample sentence9"
 ]
}'

After I receive json data from request.data, I convert it to json, in fact request.data is str.

json_data = json.loads(request.data)

Then I want to format a string with json_data.

subtitles.format(**json_data)

I got an error.

UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-1: ordinal not in range(128)

How to solve it? Thanks in advance.

EDIT

subtitles is read from file.

subtitles_file = "{path}/templates/sorry/subtitles.ass".format(path=root_path)
with open(subtitles_file, 'r') as file:
 subtitles = file.read()

EDIT Python 2 or Python 3

I'm using python 2 and this error occurs. However Python 3 can automatically handle this. So enjoy Python 3.

edited tags
Link
abarnert
  • 368k
  • 54
  • 627
  • 692
added 209 characters in body
Source Link
CoXier
  • 2.7k
  • 9
  • 37
  • 65

There is a json data which contains some Chinese characters.

{
 "font_size": "47",
 "sentences": [
 "你好",
 "sample sentence1",
 "sample sentence2",
 "sample sentence3",
 "sample sentence4",
 "sample sentence5",
 "sample sentence6",
 "sample sentence7",
 "sample sentence8",
 "sample sentence9"
 ]
}

I create a Flask app and use it to receive above json data. I use below curl command to post data.

curl -X POST \
 http://0.0.0.0:5000/ \
 -H 'Cache-Control: no-cache' \
 -H 'Content-Type: application/json;charset=UTF-8' \
 -H 'Postman-Token: af380f7a-42a8-cfbb-9177-74bb348ce5ed' \
 -d '{
 "font_size": "47",
 "sentences": [
 "你好",
 "sample sentence1",
 "sample sentence2",
 "sample sentence3",
 "sample sentence4",
 "sample sentence5",
 "sample sentence6",
 "sample sentence7",
 "sample sentence8",
 "sample sentence9"
 ]
}'

After I receive json data from request.data, I convert it to json, in fact request.data is str.

json_data = json.loads(request.data)

Then I want to format a string with json_data.

subtitles.format(**json_data)

I got an error.

UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-1: ordinal not in range(128)

How to solve it? Thanks in advance.

EDIT

subtitles is read from file.

subtitles_file = "{path}/templates/sorry/subtitles.ass".format(path=root_path)
with open(subtitles_file, 'r') as file:
 subtitles = file.read()

There is a json data which contains some Chinese characters.

{
 "font_size": "47",
 "sentences": [
 "你好",
 "sample sentence1",
 "sample sentence2",
 "sample sentence3",
 "sample sentence4",
 "sample sentence5",
 "sample sentence6",
 "sample sentence7",
 "sample sentence8",
 "sample sentence9"
 ]
}

I create a Flask app and use it to receive above json data. I use below curl command to post data.

curl -X POST \
 http://0.0.0.0:5000/ \
 -H 'Cache-Control: no-cache' \
 -H 'Content-Type: application/json;charset=UTF-8' \
 -H 'Postman-Token: af380f7a-42a8-cfbb-9177-74bb348ce5ed' \
 -d '{
 "font_size": "47",
 "sentences": [
 "你好",
 "sample sentence1",
 "sample sentence2",
 "sample sentence3",
 "sample sentence4",
 "sample sentence5",
 "sample sentence6",
 "sample sentence7",
 "sample sentence8",
 "sample sentence9"
 ]
}'

After I receive json data from request.data, I convert it to json, in fact request.data is str.

json_data = json.loads(request.data)

Then I want to format a string with json_data.

subtitles.format(**json_data)

I got an error.

UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-1: ordinal not in range(128)

How to solve it? Thanks in advance.

There is a json data which contains some Chinese characters.

{
 "font_size": "47",
 "sentences": [
 "你好",
 "sample sentence1",
 "sample sentence2",
 "sample sentence3",
 "sample sentence4",
 "sample sentence5",
 "sample sentence6",
 "sample sentence7",
 "sample sentence8",
 "sample sentence9"
 ]
}

I create a Flask app and use it to receive above json data. I use below curl command to post data.

curl -X POST \
 http://0.0.0.0:5000/ \
 -H 'Cache-Control: no-cache' \
 -H 'Content-Type: application/json;charset=UTF-8' \
 -H 'Postman-Token: af380f7a-42a8-cfbb-9177-74bb348ce5ed' \
 -d '{
 "font_size": "47",
 "sentences": [
 "你好",
 "sample sentence1",
 "sample sentence2",
 "sample sentence3",
 "sample sentence4",
 "sample sentence5",
 "sample sentence6",
 "sample sentence7",
 "sample sentence8",
 "sample sentence9"
 ]
}'

After I receive json data from request.data, I convert it to json, in fact request.data is str.

json_data = json.loads(request.data)

Then I want to format a string with json_data.

subtitles.format(**json_data)

I got an error.

UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-1: ordinal not in range(128)

How to solve it? Thanks in advance.

EDIT

subtitles is read from file.

subtitles_file = "{path}/templates/sorry/subtitles.ass".format(path=root_path)
with open(subtitles_file, 'r') as file:
 subtitles = file.read()
Source Link
CoXier
  • 2.7k
  • 9
  • 37
  • 65
Loading
lang-py

AltStyle によって変換されたページ (->オリジナル) /