Вы пытаетесь передать байтовую строку чему-то, но невозможно (из-за недостатка информации, которую вы предоставляете) сказать , что вы пытаетесь передать. Вы начинаете со строки Unicode, которая не может быть закодирована как ASCII (кодек по умолчанию), поэтому вам придется кодировать с помощью другого кодека (или транслитерировать его, как предлагает @ R.Pate) - но это невозможно использовать для скажем какой кодек вы должны использовать, потому что мы не знаем, что вы передаете, и поэтому не знаете, что эта неизвестная подсистема сможет принимать и обрабатывать правильно с точки зрения кодеков .
В такой полной темноте, которую вы оставляете нам, utf-8
- разумное слепое предположение (так как это кодек, который может представлять любую строку Unicode точно в виде строки байтов, и это стандартный кодек для многих целей, таких как XML) - но это не может быть чем-то большим, чем слепое предположение, до тех пор, пока вы не расскажете нам больше о , что вы пытаетесь передать этому байтуру и для каких целей.
Передача thestring.encode('utf-8')
вместо голого thestring
определенно позволит избежать конкретной ошибки, которую вы видите сейчас, но это может привести к особым дисплеям (или что бы вы ни пытались сделать ) с помощью этой строки!) если получатель не готов, не желает и не может принять кодировку utf-8 (и как мы можем знать, абсолютно не имея представления о том, каким может быть получатель?! -)