পাইথনে stdout পাইপ করার সময় সঠিক এনকোডিং সেট করা


343

পাইথন প্রোগ্রামের আউটপুটটি পাইপ করার সময় পাইথন ইন্টারপ্রেটার এনকোডিং সম্পর্কে বিভ্রান্ত হয়ে পড়ে এবং এটি কোনওটিতে সেট করে না। এর অর্থ এইরকম একটি প্রোগ্রাম:

# -*- coding: utf-8 -*-
print u"åäö"

সাধারণত চালানো গেলে ঠিকঠাক কাজ করবে তবে এতে ব্যর্থ:

ইউনিকোড এনকোড এরির: 'এসকিআই' কোডেক আপনি অক্ষরের এনকোড করতে পারবেন না

যখন পাইপ ক্রম ব্যবহার করা হয়।

পাইপিংয়ের সময় এই কাজটি করার সর্বোত্তম উপায় কী? আমি কি কেবল এটি শেল / ফাইলসিস্টেম / যা ব্যবহার করছে তা এনকোডিং যা ব্যবহার করতে বলি?

আমি এখন পর্যন্ত যে পরামর্শগুলি দেখেছি তা হ'ল সরাসরি আপনার সাইট.পিটি সংশোধন করা, বা এই হ্যাক ব্যবহার করে ডিফল্টকোডিং হার্ডকডিং:

# -*- coding: utf-8 -*-
import sys
reload(sys)
sys.setdefaultencoding('utf-8')
print u"åäö"

পাইপিংয়ের কাজ করার কী আরও ভাল উপায় আছে?


1
এছাড়াও দেখুন
স্ট্যাকওভারফ্লো.

2
উইন্ডোতে আপনার যদি সমস্যা হয় তবে আপনি chcp 65001আপনার স্ক্রিপ্টটি কার্যকর করার আগে চালাতে পারেন । এটিতে সমস্যা থাকতে পারে তবে এটি প্রায়শই সহায়তা করে এবং প্রচুর টাইপিংয়ের (কম (কম set PYTHONIOENCODING=utf_8)) প্রয়োজন হয় না ।
টমাসজ গ্যান্ডার

chcp কমান্ডটি পাইথনিওনকডিং সেট করার মতো নয়। আমার মনে হয় chcp কেবল টার্মিনালের জন্য কনফিগারেশন এবং কোনও ফাইলকে লেখার সাথে কিছুই করার নেই (যা আপনি স্টাডাউট পাইপ করার সময় করছেন)। আপনি setx PYTHONENCODING utf-8যদি টাইপিং সংরক্ষণ করতে চান তবে এটিকে স্থায়ী করার চেষ্টা করুন ।
ইজম


আমি একটি কিছুটা সংশ্লিষ্ট ইস্যু মুখোমুখি, এবং এখানে একটি সমাধান পাওয়া -> stackoverflow.com/questions/48782529/...
bkrishna2006

উত্তর:


162

আপনার কোডটি কোনও স্ক্রিপ্টে চলাকালীন কাজ করে কারণ পাইথন আপনার টার্মিনাল অ্যাপ্লিকেশনটি যা এনকোডিং করে তা আউটপুট এনকোড করে। আপনি যদি পাইপিং করেন তবে আপনাকে এটি নিজেই এনকোড করতে হবে।

থাম্বের একটি নিয়ম: সর্বদা অভ্যন্তরীণভাবে ইউনিকোড ব্যবহার করুন। আপনি যা পান তা ডিকোড করুন এবং আপনি যা প্রেরণ করবেন তা এনকোড করুন।

# -*- coding: utf-8 -*-
print u"åäö".encode('utf-8')

আর একটি যুক্তিযুক্ত উদাহরণ হ'ল আইএসও -8859-1 এবং ইউটিএফ -8 এর মধ্যে রূপান্তর করার জন্য পাইথন প্রোগ্রাম যা সমস্ত কিছুকে বড় হাতের মাঝে তৈরি করে।

import sys
for line in sys.stdin:
    # Decode what you receive:
    line = line.decode('iso8859-1')

    # Work with Unicode internally:
    line = line.upper()

    # Encode what you send:
    line = line.encode('utf-8')
    sys.stdout.write(line)

সিস্টেমের ডিফল্ট এনকোডিং সেট করা একটি খারাপ ধারণা, কারণ আপনি ব্যবহার করেন এমন কিছু মডিউল এবং গ্রন্থাগার এটি ASCII এর উপর নির্ভর করতে পারে। এটা করবেন না।


11
সমস্যাটি হ'ল ব্যবহারকারী স্পষ্টভাবে এনকোডিং নির্দিষ্ট করতে চান না। তিনি কেবল আইওর জন্য ইউনিকোড ব্যবহার করতে চান। এবং তিনি যে এনকোডিংটি ব্যবহার করেন তা হ'ল স্থানীয় সেটিংগুলিতে নির্দিষ্ট একটি এনকোডিং হওয়া উচিত, টার্মিনাল অ্যাপ্লিকেশন সেটিংসে নয়। আফাইক, পাইথন 3 এই ক্ষেত্রে একটি লোকেল এনকোডিং ব্যবহার করে । পরিবর্তন করা sys.stdoutআরও সুখকর উপায় বলে মনে হচ্ছে।
আন্দ্রে ভ্লাসোভস্কিখ

4
এনকোডিং / ডিকোড কলটি অনুপস্থিত বা একবারে কোথাও কোথাও যুক্ত হয়ে গেলে প্রতিটি স্ট্রিংকে এক্সপ্লিটলি এনকোডিং / ডিকোডিং বাগগুলি দিতে বাধ্য। আউটপুটটি টার্মিনাল হলে আউটপুট এনকোডিং সেট করা যায়, সুতরাং আউটপুট টার্মিনাল না হলে এটি সেট করা যায়। এটি নির্দিষ্ট করার জন্য এমনকি একটি মানসম্পন্ন LC_CTYPE পরিবেশ রয়েছে। এটি অজগর কিন্তু এটি এটি সম্মান করে না যে।
রাসমাস কাজ

65
এই উত্তরটি ভুল। আপনার প্রোগ্রামের প্রতিটি ইনপুট এবং আউটপুটটিতে আপনাকে ম্যানুয়ালি রূপান্তর করা উচিত নয় ; এটি ভঙ্গুর এবং সম্পূর্ণ অনিবার্য।
গ্লেন মেইনার্ড

29
@ গ্লেন মেইনার্ড: তাহলে সঠিক উত্তরটি কী? কেবল 'এই উত্তরটি ভুল'
স্মি

14
@ এসএমসি: উত্তরটি আপনার স্ক্রিপ্টটি পরিবর্তন করবে না, PYTHONIOENCODINGআপনি যদি পাইথন ২ এ স্ক্রিপ্টের
স্টাডাউটটি

168

প্রথমত, এই সমাধান সম্পর্কে:

# -*- coding: utf-8 -*-
print u"åäö".encode('utf-8')

এটি প্রতিটি সময় প্রদত্ত এনকোডিং সহ স্পষ্টভাবে মুদ্রণ করা ব্যবহারিক নয়। এটি পুনরাবৃত্তি এবং ত্রুটি-প্রবণ হবে।

sys.stdoutআপনার প্রোগ্রামের শুরুতে একটি নির্বাচিত এনকোডিং সহ এনকোড করা আরও ভাল সমাধান । পাইথনে আমি এখানে একটি সমাধান পেয়েছি : sys.stdout.encoding কীভাবে বেছে নেওয়া হয়? , বিশেষত "টোকা" দ্বারা একটি মন্তব্য:

import sys
import codecs
sys.stdout = codecs.getwriter('utf8')(sys.stdout)

7
দুর্ভাগ্যক্রমে, শুধুমাত্র ইউনিকোড গ্রহণ করতে sys.stdout পরিবর্তন করা অনেকগুলি লাইব্রেরি বিরতি দেয় যা এটি এনকোডড বাইটস্ট্রিংগুলি গ্রহণ করার প্রত্যাশা করে।
নসক্লো

6
নসক্লো: তারপরে আউটপুটটি টার্মিনাল হলে এটি নির্ভরযোগ্য ও স্বয়ংক্রিয়ভাবে কীভাবে কাজ করতে পারে?
রাসমাস কাজ

3
@ রসমাস কাজ: আপনার নিজের ইউনিকোড প্রিন্টিং ফাংশনটি কেবল সংজ্ঞায়িত করুন এবং ইউনিকোড প্রিন্ট করতে চাইলে এটি ব্যবহার করুন: def myprint(unicodeobj): print unicodeobj.encode('utf-8')- আপনি স্বয়ংক্রিয়ভাবে পরিদর্শন করে টার্মিনাল এনকোডিং সনাক্ত করতে পারেন sys.stdout.encoding, তবে এটি যেখানে রয়েছে তা বিবেচনা করা উচিত None(অর্থাত্ কোনও ফাইলে আউটপুট পুনর্নির্দেশের সময়) সুতরাং আপনার যাইহোক একটি পৃথক ফাংশন প্রয়োজন।
nosklo

3
@ ননস্ক্লো: এটি সিস্টেস্ট করে না st স্টডআউটটি কেবল ইউনিকোডকেই গ্রহণ করে। আপনি স্ট্রাইমাইট্রারে স্ট্রিং এবং ইউনিকোড উভয়কেই পাস করতে পারেন।
গ্লেন মেইনার্ড

9
আমি ধরে নিই যে এই উত্তরটি পাইথন 2 এর জন্য ছিল। যা উভয় python2 এবং python3 সমর্থন করার জন্য দেয়ার উদ্দেশ্যে করা হচ্ছে এই কোডটি থেকে সতর্ক থাকুন । অজগর 3 এর নীচে দৌড়ালে আমার জন্য এটি জিনিস ভাঙ্গা।
Wim

130

আপনি পরিবেশের পরিবর্তনশীল "PYTHONIOENCODING" কে "utf_8" পরিবর্তন করার চেষ্টা করতে পারেন। আমি এই সমস্যাটি নিয়ে আমার অগ্নিপরীক্ষায় একটি পৃষ্ঠা লিখেছি ।

ব্লগ পোস্টের টিএল; ডাঃ:

import sys, locale, os
print(sys.stdout.encoding)
print(sys.stdout.isatty())
print(locale.getpreferredencoding())
print(sys.getfilesystemencoding())
print(os.environ["PYTHONIOENCODING"])
print(chr(246), chr(9786), chr(9787))

আপনি দেয়

utf_8
False
ANSI_X3.4-1968
ascii
utf_8
ö ☺ ☻

2
Sys.stdout.encoding হয়তো কাজ করে না পরিবর্তন, কিন্তু sys.stdout পরিবর্তন কাজ করে: sys.stdout = codecs.getwriter(encoding)(sys.stdout)। এটি পাইথন প্রোগ্রামের মধ্যে থেকে করা যেতে পারে, তাই ব্যবহারকারী একটি এনভির ভেরিয়েবল সেট করতে বাধ্য হয় না।
ব্লু ফাস্ট

7
@ jeckyll2hide: PYTHONIOENCODINGকাজ করে। বাইটগুলি কীভাবে পাঠ্য হিসাবে ব্যাখ্যা করা হয় তা ব্যবহারকারী পরিবেশ দ্বারা সংজ্ঞায়িত করা হয় । আপনার স্ক্রিপ্টটি অনুমান করা উচিত নয় এবং ব্যবহার করা উচিত পরিবেশের পরিবেশকে কোন অক্ষরটি এনকোডিংয়ের জন্য ব্যবহার করতে হবে। পাইথন যদি সেটিংস স্বয়ংক্রিয়ভাবে না নেয় তবে PYTHONIOENCODINGআপনার স্ক্রিপ্টের জন্য সেট করা যেতে পারে। আউটপুট কোনও ফাইল / পাইপে পুনঃনির্দেশ না করা হয় তবে আপনার প্রয়োজন হবে না।
jfs

8
+1 টি। সত্যিই আমি মনে করি এটি পাইথন বাগ। আমি যখন আউটপুট পুনঃনির্দেশ করি তখন আমি সেই একই বাইটগুলি চাই যা টার্মিনালে থাকবে তবে একটি ফাইলের মধ্যে। হতে পারে এটি সবার জন্য নয় তবে এটি একটি ভাল ডিফল্ট। সাধারণত "স্রেফ কাজ করে" তুচ্ছ অপারেশন সম্পর্কে কোনও ব্যাখ্যা না দিয়ে কঠোর ক্রাশ করা একটি খারাপ ডিফল্ট।
18

@ স্নাকই: পাইথনের বাস্তবায়ন ইচ্ছাকৃতভাবে স্টার্টআউট সময়ে স্টাডআউটে একটি লোহা dাকানো এবং স্থায়ী পছন্দটি কেন প্রয়োগ করতে পারে তার একমাত্র উপায় আমি পরে যুক্তিযুক্ত করতে পারি, যাতে পরে কোনও খারাপভাবে এনকোডযুক্ত জিনিসটি পরে আসতে না পারে। বা এটিকে পরিবর্তন করা কেবল একটি অযৌক্তিক বৈশিষ্ট্য, এক্ষেত্রে ব্যবহারকারীকে পরে এটিকে পরিবর্তন করার অনুমতি দেওয়া হবে যুক্তিসঙ্গত পাইথন বৈশিষ্ট্য অনুরোধ।
ডেভ্যাগপ

2
@ ডেভাগপ আমার বক্তব্যটি হ'ল, আমার প্রোগ্রামটির আচরণটি পুনঃনির্দেশিত হয়েছে কিনা তার উপর নির্ভর করা উচিত নয় --- যদি না আমি সত্যিই এটি না চাই, যে ক্ষেত্রে আমি নিজে এটি প্রয়োগ করি। পাইথন অন্য কোনও কনসোল সরঞ্জামগুলির সাথে আমার অভিজ্ঞতার বিপরীতে আচরণ করে। এটি সর্বনিম্ন আশ্চর্য নীতি লঙ্ঘন করে। খুব শক্ত যুক্তি না থাকলে আমি এটিকে একটি ডিজাইনের ত্রুটি হিসাবে বিবেচনা করি।

62
export PYTHONIOENCODING=utf-8

কাজটি করুন, তবে অজগরটি নিজেই সেট করতে পারবেন না ...

আমরা যা করতে পারি তা যাচাই করে তা সেট করা না থাকলে এবং ব্যবহারকারীকে কল স্ক্রিপ্টের আগে এটি সেট করতে বলুন:

if __name__ == '__main__':
    if (sys.stdout.encoding is None):
        print >> sys.stderr, "please set python env PYTHONIOENCODING=UTF-8, example: export PYTHONIOENCODING=UTF-8, when write to stdout."
        exit(1)

মন্তব্যের জবাব দিতে আপডেট করুন: স্টডআউটে পাইপ দেওয়ার সময় সমস্যাটি উপস্থিত রয়েছে। আমি ফেডোরা 25 পাইথন 2.7.13 এ পরীক্ষা করেছি tested

python --version
Python 2.7.13

বিড়াল বি.পি.

#!/usr/bin/env python
#-*- coding: utf-8 -*-
import sys

print sys.stdout.encoding

চলমান ./b.py

UTF-8

চলমান ./b.py | কম

None

2
পাইথন ২.7.১৩ এ পরীক্ষা করে না। স্থানীয় মানের sys.stdout.encodingউপর ভিত্তি করে স্বয়ংক্রিয়ভাবে সেট করা আছে LC_CTYPE
amphetamachine

1
mail.python.org/pipermail/python-list/2011-June/605938.html উদাহরণ এখনও কাজ, অর্থাত যখন আপনি ./a.py> out.txt sys.stdout.encoding হয় কোনটি ব্যবহার
সের্গিও

ব্যাকব্লাজ বি 2 থেকে সিঙ্ক স্ক্রিপ্টের সাথে আমার একই সমস্যা ছিল এবং পাইথনিআইওনকোডিং = utf-8 রফতানি করে আমার সমস্যার সমাধান করে। ডেবিয়ান স্ট্রেচে পাইথন ২.7
0x3333

5

আমি গত সপ্তাহে একটি একই সমস্যা ছিল । আমার আইডিই (পাইচার্ম) এ ঠিক করা সহজ ছিল।

এখানে আমার সংশোধন ছিল:

পাইচার্ম মেনু বার থেকে শুরু করে: ফাইল -> সেটিংস ... -> সম্পাদক -> ফাইল এনকোডিংস, তারপরে সেট করুন: "আইডিই এনকোডিং", "প্রকল্প এনকোডিং" এবং "সম্পত্তি ফাইলগুলির জন্য ডিফল্ট এনকোডিং" সমস্তটি ইউটিএফ -8 এ রয়েছে এবং সে এখন কাজ করে জাদুর মত.

আশাকরি এটা সাহায্য করবে!


4

ক্রেগ ম্যাককুইনের উত্তরের একটি বিতর্কিত স্যানিটাইজড সংস্করণ।

import sys, codecs
class EncodedOut:
    def __init__(self, enc):
        self.enc = enc
        self.stdout = sys.stdout
    def __enter__(self):
        if sys.stdout.encoding is None:
            w = codecs.getwriter(self.enc)
            sys.stdout = w(sys.stdout)
    def __exit__(self, exc_ty, exc_val, tb):
        sys.stdout = self.stdout

ব্যবহার:

with EncodedOut('utf-8'):
    print u'ÅÄÖåäö'

2

আমি একটি কল দিয়ে এটি "স্বয়ংক্রিয়" করতে পারলাম:

def __fix_io_encoding(last_resort_default='UTF-8'):
  import sys
  if [x for x in (sys.stdin,sys.stdout,sys.stderr) if x.encoding is None] :
      import os
      defEnc = None
      if defEnc is None :
        try:
          import locale
          defEnc = locale.getpreferredencoding()
        except: pass
      if defEnc is None :
        try: defEnc = sys.getfilesystemencoding()
        except: pass
      if defEnc is None :
        try: defEnc = sys.stdin.encoding
        except: pass
      if defEnc is None :
        defEnc = last_resort_default
      os.environ['PYTHONIOENCODING'] = os.environ.get("PYTHONIOENCODING",defEnc)
      os.execvpe(sys.argv[0],sys.argv,os.environ)
__fix_io_encoding() ; del __fix_io_encoding

হ্যাঁ, যদি এই "Setenv" ব্যর্থ হয় তবে এখানে অসীম লুপ পাওয়া সম্ভব।


1
আকর্ষণীয়, তবে একটি পাইপ এতে খুশি বলে মনে হচ্ছে না
n611x007

2

আমি কেবল ভেবেছিলাম যে আমি এখানে এমন কিছু উল্লেখ করব যা অবশেষে যা চলছে তা বুঝতে পেরে আমাকে দীর্ঘসময় ধরে পরীক্ষার জন্য ব্যয় করতে হবে। এটি এখানে প্রত্যেকের পক্ষে এতটাই সুস্পষ্ট হতে পারে যে তারা এটি উল্লেখ করে বিরক্ত করেনি। তবে তারা যদি আমাকে সাহায্য করত তবে সেই নীতিতে ...!

এনবি: আমি জেথনকে বিশেষভাবে ব্যবহার করছি , v 2.7, সুতরাং সম্ভবত এটি সিপিথনের ক্ষেত্রে প্রযোজ্য না ...

এনবি 2: আমার .py ফাইলের প্রথম দুটি লাইন এখানে রয়েছে:

# -*- coding: utf-8 -*-
from __future__ import print_function

"%" (একেএ "ইন্টারপোলেশন অপারেটর") স্ট্রিং নির্মাণ পদ্ধতিটিও অতিরিক্ত সমস্যাগুলির কারণ করে ... যদি "পরিবেশ" এর ডিফল্ট এনকোডিং ASCII হয় এবং আপনি এর মতো কিছু করার চেষ্টা করেন

print( "bonjour, %s" % "fréd" )  # Call this "print A"

আপনাকে Eclipse এ চলতে কোনও অসুবিধা হবে না ... একটি উইন্ডোজ CLI (ডস উইন্ডো) এ আপনি দেখতে পাবেন যে এনকোডিংটি কোড পৃষ্ঠা 850 (আমার উইন্ডোজ 7 OS) বা এর অনুরূপ কিছু, যা কমপক্ষে ইউরোপীয় উচ্চারণযুক্ত অক্ষরগুলি পরিচালনা করতে পারে, তাই এটি 'কাজ করব।

print( u"bonjour, %s" % "fréd" ) # Call this "print B"

কাজ করবে।

যদি ওটিওএইচ, আপনি সিএলআই থেকে কোনও ফাইলের দিকে নির্দেশ করেন তবে স্টাডআউট এনকোডিং কোনও হবে না, এটি ASCII- তে ডিফল্ট হবে (যাইহোক আমার OS এ), যা উপরের কোনও প্রিন্ট হ্যান্ডেল করতে সক্ষম হবে না ... (ভয়ঙ্কর এনকোডিং ত্রুটি).

সুতরাং আপনি ব্যবহার করে আপনার স্টাডাউট পুনর্নির্দেশের কথা ভাবতে পারেন

sys.stdout = codecs.getwriter('utf8')(sys.stdout)

এবং কোনও ফাইলের সিআইএল পাইপিংয়ে চালানোর চেষ্টা করুন ... খুব অদ্ভুতভাবে, উপরোক্ত একটি মুদ্রণ করা কাজ করবে ... তবে উপরের বি প্রিন্ট করলে এনকোডিংয়ের ত্রুটি ছুঁড়ে যাবে! নিম্নলিখিতগুলি ঠিক আছে তবে কাজ করবে:

print( u"bonjour, " + "fréd" ) # Call this "print C"

আমি যে সিদ্ধান্তে পৌঁছেছি (অস্থায়ীভাবে) তা হ'ল যদি "ইউ" উপসর্গ ব্যবহার করে ইউনিকোড স্ট্রিং হিসাবে চিহ্নিত একটি স্ট্রিং যদি %-হ্যান্ডলিং পদ্ধতিতে জমা দেওয়া হয় তবে তা ডিফল্ট পরিবেশ এনকোডিংয়ের ব্যবহারের সাথে জড়িত বলে মনে হয়, নির্বিশেষে আপনি পুনর্নির্দেশ stdout সেট আছে কিনা!

লোকেরা কীভাবে এটি ব্যবহার করে তা পছন্দের বিষয়। আমি কোনও ইউনিকোড বিশেষজ্ঞকে এটির জন্য স্বাগত জানাব কেন এটি ঘটে, আমি এটি কোনওভাবে ভুল পেয়েছি কিনা, এর জন্য পছন্দসই সমাধানটি কী, এটি সিপিথনের ক্ষেত্রেও প্রযোজ্য কিনা, পাইথন 3 ইত্যাদিতে ঘটে কিনা ইত্যাদি ইত্যাদি।


এটি অদ্ভুত নয়, কারণ "fréd"এটি একটি বাইট ক্রম এবং কোনও ইউনিকোড স্ট্রিং নয়, তাই codecs.getwriterমোড়ক এটিকে একা রেখে দেবে। আপনার একটি নেতৃস্থানীয় প্রয়োজন u, বা from __future__ import unicode_literals
ম্যাথিয়াস উরলিচস

@ মাথিয়াস উরলিচস ঠিক আছে ... ধন্যবাদ ... তবে আমি কেবল আইটি-র মধ্যে সবচেয়ে মারাত্মক দিকগুলির একটি এনকোডিং পেয়েছি। আপনি কোথায় থেকে আপনার বোঝার পেতে? উদাহরণস্বরূপ, আমি এখানে কেবল এনকোডিং সম্পর্কে আরেকটি প্রশ্ন পোস্ট করেছি: স্ট্যাকওভারফ্লো / প্রশ্নগুলি / 48৪৪৪30০6767//২ : এটি জাভা, একলাইপস, সাইগউইন এবং গ্রেডল সম্পর্কে। আপনার দক্ষতা যদি এই পর্যন্ত চলে যায় তবে দয়া করে সহায়তা করুন ... সর্বোপরি আমি আরও কোথায় শিখতে চাই তা জানতে চাই!
মাইকে রডেন্ট

1

আমি কোনও উত্তরাধিকারের আবেদনে এই সমস্যায় পড়েছি এবং কোথায় কী ছাপা হয়েছিল তা সনাক্ত করা শক্ত। আমি এই হ্যাকটি দিয়ে নিজেকে সাহায্য করেছি:

# encoding_utf8.py
import codecs
import builtins


def print_utf8(text, **kwargs):
    print(str(text).encode('utf-8'), **kwargs)


def print_utf8(fn):
    def print_fn(*args, **kwargs):
        return fn(str(*args).encode('utf-8'), **kwargs)
    return print_fn


builtins.print = print_utf8(print)

আমার স্ক্রিপ্টের উপরে, test.py:

import encoding_utf8
string = 'Axwell Λ Ingrosso'
print(string)

নোট করুন যে এটি একটি এনকোডিং ব্যবহার করতে মুদ্রণের জন্য সমস্ত কল পরিবর্তন করে, তাই আপনার কনসোল এটি মুদ্রণ করবে:

$ python test.py
b'Axwell \xce\x9b Ingrosso'

1

উইন্ডোজে, সম্পাদক থেকে পাইথন কোড চালানোর সময় আমি প্রায়শই এই সমস্যাটি পাই (যেমন সাব্লাইম টেক্সট), তবে এটি কমান্ড-লাইন থেকে চালিত না করে নয়

এই ক্ষেত্রে, আপনার সম্পাদকের পরামিতিগুলি পরীক্ষা করুন। সাব্লাইম টেক্সট এর ক্ষেত্রে Python.sublime-buildএটি এটি সমাধান করেছে:

{
  "cmd": ["python", "-u", "$file"],
  "file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
  "selector": "source.python",
  "encoding": "utf8",
  "env": {"PYTHONIOENCODING": "utf-8", "LANG": "en_US.UTF-8"}
}
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.