পাইথনের ডিফল্ট এনকোডিং পরিবর্তন হচ্ছে?


143

আমি যখন কনসোল থেকে আমার অ্যাপ্লিকেশনগুলি চালিত করি তখন পাইথনের সাথে আমার অনেকগুলি "এনকোড করতে পারে না" এবং "ডিকোড করতে পারে না" সমস্যা রয়েছে । কিন্তু এ অন্ধকার PyDev আইডিই, ডিফল্ট অক্ষর এনকোডিং সেট করা হয় হল UTF-8 , এবং আমি ঠিক আছি।

আমি ডিফল্ট এনকোডিং সেট করার জন্য চারপাশে অনুসন্ধান করেছি এবং লোকেরা বলে যে পাইথন sys.setdefaultencodingপ্রারম্ভকালে ফাংশনটি মুছে ফেলে এবং আমরা এটি ব্যবহার করতে পারি না।

তাহলে এর সর্বোত্তম সমাধান কী?


1

3
The best solution is to learn to use encode and decode correctly instead of using hacks.অজানা 2 দিয়ে সর্বদা এটির জন্য মনে রাখা / ক্রমাগত নিজের ইন্টারফেস ব্যবহার করে ব্যয়ে এটি সম্ভব হয়েছিল । আমার অভিজ্ঞতা পরামর্শ দেয় যে আপনি যখন কোড লিখছেন যে আপনি পাইথন 2 এবং পাইথন 3 উভয়ের সাথে কাজ করতে চান এটি অত্যন্ত সমস্যাযুক্ত হয়ে ওঠে।
এট রিগ

উত্তর:


159

এখানে একটি সহজ পদ্ধতি (হ্যাক) যা আপনাকে setdefaultencoding()ফাংশনটি ফিরিয়ে দেয় যা থেকে মুছে ফেলা হয়েছে sys:

import sys
# sys.setdefaultencoding() does not exist, here!
reload(sys)  # Reload does the trick!
sys.setdefaultencoding('UTF8')

(3.4+ পাইথন জন্য নোট: reload()হয় importlibগ্রন্থাগার।)

এটি করা কোনও নিরাপদ জিনিস নয় , যদিও: এটি অবশ্যই একটি হ্যাক, যেহেতু পাইথন শুরু হওয়ার পরে sys.setdefaultencoding()উদ্দেশ্যমূলকভাবে অপসারণ করা হয়েছে sys। এটি পুনরায় চালু করা এবং ডিফল্ট এনকোডিং পরিবর্তন করা এএসসিআইআই এর উপর নির্ভর করে এমন কোডটি ভেঙে ফেলতে পারে (এই কোডটি তৃতীয় পক্ষ হতে পারে, এটি সাধারণত এটি অসম্ভব বা বিপজ্জনক করে তোলে)।


5
আমি হ্রাস পেয়েছি, কারণ এই উত্তরটি বিদ্যমান অ্যাপ্লিকেশনগুলি চালিত করতে সহায়তা করে না (যা প্রশ্নের ব্যাখ্যা করার এক উপায়), আপনি যখন কোনও অ্যাপ্লিকেশন লিখছেন / বজায় রাখছেন এবং কোনও গ্রন্থাগার লেখার সময় বিপজ্জনক তা ভুল। সঠিক উপায়টি সেট করা LC_CTYPE(বা কোনও অ্যাপ্লিকেশনে এটি সঠিকভাবে সেট করা আছে কিনা তা পরীক্ষা করে দেখুন এবং একটি অর্থবহ ত্রুটি বার্তাটি বাতিল করে দেওয়া)।
ইবটটি

@ বিটিটি আমি একমত যে এই উত্তরটি হ্যাক এবং এটি ব্যবহার করা বিপজ্জনক। এটি প্রশ্নের উত্তর দেয়, যদিও ("পাইথনের ডিফল্ট এনকোডিং পরিবর্তন হচ্ছে?")। পাইথন ইন্টারপ্রেটারে পরিবেশের পরিবর্তনশীল LC_CTYPE এর প্রভাব সম্পর্কে আপনার কাছে কি কোনও উল্লেখ রয়েছে?
এরিক হে লেবিগোট

ভাল, এটি উল্লেখ করেনি, এটি প্রথমে একটি হ্যাক। তা ছাড়া, বিপজ্জনক উত্তরগুলির যেগুলির কোনও উল্লেখের অভাব রয়েছে সেগুলি সহায়ক নয়।
ইবটটি

1
@ ইওল ​​আপনি ঠিক বলেছেন এটি (অজগর 2 এবং 3 তে) পছন্দসই LC_CTYPE=C python -c 'import locale; print( locale.getpreferredencoding())'
কোডিংয়ের

1
@ user2394901 sys.setdeafultencoding () এর ব্যবহার সর্বদা নিরুৎসাহিত করা হয়েছে !! এবং পাই 3 কে এর এনকোডিংটি "ইউটিএফ -8" এর সাথে শক্ত-ওয়্যার এবং এটি পরিবর্তন করা একটি ত্রুটি উত্থাপন করে।
মার্লন অ্যাবাইকুন

70

আপনি যখন আপনার স্ক্রিপ্টের আউটপুটটি পাইপ / রিডাইরেক্ট করার চেষ্টা করেন আপনি এই ত্রুটিটি পান

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

কেবল কনসোলে পাইথনিওনকডিং রফতানি করুন এবং তারপরে আপনার কোডটি চালান।

export PYTHONIOENCODING=utf8


3
এটিই একমাত্র সমাধান যা আমার জন্য কোনও পার্থক্য তৈরি করেছিল। - আমি ভাঙ্গা লোকেল সেটিংস সহ ডেবিয়ান 7 এ আছি। ধন্যবাদ।
Pryo

4
LC_CTYPEপরিবর্তে বুদ্ধিমান কিছুতে সেট করুন । এটি অন্যান্য সমস্ত প্রোগ্রামকেও আনন্দিত করে।
ইবোটি

5
পাইথন 3 এর একটি বৃহত বাগটি PYTHONIOENCODING=utf8এটি ডিফল্ট নয়। এটি স্ক্রিপ্টগুলিকে কেবল ভেঙে দেয়LC_ALL=C
টিনো

Set LC_CTYPE to something sensible insteadএটি একটি যুক্তিসঙ্গত পরামর্শ। আপনি যখন এমন কোনও কোড বিতরণ করার চেষ্টা করছেন যা কেবলমাত্র অন্য ব্যক্তির সিস্টেমে কাজ করে তখন এটি এতটা ভাল কাজ করে না ।
এট রিগ

দেবিয়ান এবং রেডহ্যাট ওএস C.utf8আরও বোধগম্য সি প্রদানের জন্য একটি লোকেল ব্যবহার করে সি গ্লিবসি আপ স্ট্রিম যুক্ত করার কাজ করছে, সুতরাং সম্ভবত আমাদের লোকাল সেটিংসের সম্মানের জন্য পাইথনকে দোষ দেওয়া উচিত নয় \…?
আর্থার 2e5

52

ক) sys.getdefaultencoding()আউটপুট নিয়ন্ত্রণ করতে :

python -c 'import sys; print(sys.getdefaultencoding())'

ascii

তারপর

echo "import sys; sys.setdefaultencoding('utf-16-be')" > sitecustomize.py

এবং

PYTHONPATH=".:$PYTHONPATH" python -c 'import sys; print(sys.getdefaultencoding())'

utf-16-be

আপনি আপনার সিটিকাস্টমাইজ.পি.কে আরও উপরে রাখতে পারেন PYTHONPATH

এছাড়াও আপনি reload(sys).setdefaultencoding@ ইওএল চেষ্টা করতে পছন্দ করতে পারেন

খ) নিয়ন্ত্রণ করতে stdin.encodingএবং stdout.encodingআপনি সেট করতে চান PYTHONIOENCODING:

python -c 'import sys; print(sys.stdin.encoding, sys.stdout.encoding)'

ascii ascii

তারপর

PYTHONIOENCODING="utf-16-be" python -c 'import sys; 
print(sys.stdin.encoding, sys.stdout.encoding)'

utf-16-be utf-16-be

শেষ পর্যন্ত: আপনি এ) বা বি) বা উভয়ই ব্যবহার করতে পারেন !


(কেবলমাত্র পাইথন 2) পৃথক তবে আকর্ষণীয় from __future__ import unicode_literalsদেখুন আলোচনার
লুকমডো

17

পাইডেভ ৩.৪.১ দিয়ে শুরু করে , ডিফল্ট এনকোডিংটি আর পরিবর্তন করা হচ্ছে না। বিশদ জন্য এই টিকিট দেখুন ।

পূর্ববর্তী সংস্করণগুলির জন্য একটি সমাধান হ'ল পিডিএফটি ইউটিএফ -8 দিয়ে ডিফল্ট এনকোডিং হিসাবে চলবে না তা নিশ্চিত করা। Eclipse এর অধীনে, ডায়ালগ সেটিংস চালান ("কনফিগারেশন চালান", যদি আমি সঠিকভাবে মনে করি); আপনি সাধারণ ট্যাবে ডিফল্ট এনকোডিং চয়ন করতে পারেন। আপনি যদি এই ত্রুটিগুলি 'তাড়াতাড়ি' করতে চান তবে এটি মার্কিন-এএসসিআইতে পরিবর্তন করুন (অন্য কথায়: আপনার পাইডিভ পরিবেশে)। এছাড়াও এই কাজের জন্য একটি মূল ব্লগ পোস্ট দেখুন ।


1
ধন্যবাদ ক্রিস। বিশেষত উপরের দিকে মার্ক টি এর মন্তব্য বিবেচনা করে, আপনার উত্তরটি আমার কাছে সবচেয়ে উপযুক্ত বলে মনে হচ্ছে। এবং এমন কারও জন্য যিনি মূলত একটিগ্রাহী / পিডিএভ ব্যবহারকারী নন, আমি নিজেই এটি আবিষ্কার করতে পারতাম না।
শান

আমি এটি বিশ্বব্যাপী পরিবর্তন করতে চাই (একবার রান কনফিগারেশনের চেয়ে একবারে) তবে কীভাবে - কীভাবে একটি পৃথক প্রশ্ন জিজ্ঞাসা করেছি তা নির্ণয় করতে পারি না: stackoverflow.com/questions/9394277/…
টিম ডিজিগিনস

13

পাইথন 2 (এবং কেবল পাইথন 2) সম্পর্কিত, প্রাক্তন উত্তরগুলির কয়েকটি নিম্নোক্ত হ্যাক ব্যবহারের উপর নির্ভর করে:

import sys
reload(sys)  # Reload is a hack
sys.setdefaultencoding('UTF8')

এটা ব্যবহার করবেন (পরীক্ষা নিরুৎসাহিত করা হয় এই বা এই )

আমার ক্ষেত্রে এটি একটি পার্শ্ব-প্রতিক্রিয়া সহ আসে: আমি আইপথন নোটবুকগুলি ব্যবহার করছি এবং একবার কোড চালানোর পরে ´প্রিন্ট´ ফাংশনটি আর কাজ করে না। আমার ধারণা এটির সমাধান হবে তবে আমি এখনও মনে করি হ্যাক ব্যবহার করা সঠিক বিকল্প হওয়া উচিত নয়।

অনেকগুলি বিকল্প চেষ্টা করার পরে, যে আমার পক্ষে কাজ করেছিল সে একই কোডটি ব্যবহারsitecustomize.py করছিল , যেখানে সেই অংশের কোডটি বোঝানো হয়েছিল । সেই মডিউলটি মূল্যায়ন করার পরে, সেটডাফুলটেনকোডিং ফাংশনটি সাইগুলি থেকে সরানো হবে।

সুতরাং সমাধানটি /usr/lib/python2.7/sitecustomize.pyকোড ফাইল করার জন্য যুক্ত করা হল :

import sys
sys.setdefaultencoding('UTF8')

যখন আমি ভার্চুয়ালেনভ্র্যাপার ব্যবহার করি তখন আমার সম্পাদিত ফাইলটি ~/.virtualenvs/venv-name/lib/python2.7/sitecustomize.py

এবং যখন আমি পাইথন নোটবুক এবং কনডা ব্যবহার করি তখন তা হয় ~/anaconda2/lib/python2.7/sitecustomize.py


8

এটি সম্পর্কে একটি অন্তর্দৃষ্টিপূর্ণ ব্লগ পোস্ট আছে।

Https://anonbadger.wordpress.com/2015/06/16/why-sys-setdeafultencoding-will-break-code/ দেখুন ।

আমি নীচে এর বিষয়বস্তু প্যারাফ্রেজ।

পাইথন 2 এ যা স্ট্রিংয়ের এনকোডিং সম্পর্কিত দৃ strongly়রূপে টাইপ করা হয়নি আপনি আলাদাভাবে এনকোডযুক্ত স্ট্রিংগুলিতে অপারেশন করতে পারবেন এবং সফল হতে পারবেন। যেমন নীচেরগুলি ফিরে আসবে True

u'Toshio' == 'Toshio'

এটি এনকোড করা প্রতিটি (স্বাভাবিক, প্রাক-পূর্বনির্ধারিত) স্ট্রিংয়ের জন্য ধারণ করবে sys.getdefaultencoding(), যা ডিফল্ট হয়েছে asciiঅন্যদের কাছে নয়।

ডিফল্ট এনকোডিংটি বোঝানো হয়েছিল সিস্টেম-ব্যাপী পরিবর্তিত site.py, তবে অন্য কোথাও নয়। ব্যবহারকারী মডিউলগুলিতে সেট করতে হ্যাকগুলি (এখানেও উপস্থাপিত) কেবল এটি ছিল: হ্যাকগুলি, সমাধান নয়।

পাইথন 3 সিস্টেম এনকোডিংটিকে ডিফল্ট হিসাবে utf-8 এ পরিবর্তিত করে (যখন এলসি_সিটিওয়াইপি ইউনিকোড-সচেতন হয়), তবে যখনই ইউনিকোড স্ট্রিংয়ের সাথে ব্যবহৃত হয় তখন স্পষ্টভাবে "বাইট" স্ট্রিংগুলি এনকোড করার প্রয়োজনীয়তার সাথে মৌলিক সমস্যাটি সমাধান করা হয়েছিল।


4

প্রথম: reload(sys)এবং আউটপুট টার্মিনাল স্ট্রিমের প্রয়োজনীয়তার জন্য কিছু র্যান্ডম ডিফল্ট এনকোডিং সেট করা অনুশীলন। reloadপরিবেশের উপর নির্ভর করে স্থাপন করা জিনিসগুলি প্রায়শই সিস্টেমে পরিবর্তন করা হয় - যেমন sys.stdin / stdout প্রবাহ, sys.excepthook ইত্যাদি etc.

স্টডআউটে এনকোড সমস্যা সমাধান করা

Sys.stdout- এ ' printইউনিকোড স্ট্রিংগুলি এবং এর বাইরে- strঅ্যাসকি'র (যেমন আক্ষরিক থেকে) এর এনকোড সমস্যা সমাধানের জন্য আমি যে সেরা সমাধানটি জানি তা হ'ল একটি সিএস.স্টডআউট (ফাইল-এর মতো অবজেক্ট) এর যত্ন নেওয়া যা সক্ষম এবং প্রয়োজনীয়তা সম্পর্কে বিকল্পভাবে সহনশীল:

  • কখন sys.stdout.encodingNoneস্টাডাউট টার্মিনাল বা স্ট্রিম আসলেই সক্ষম তার থেকে কোনও কারণে, বা অ-বিদ্যমান, বা ভুলভাবে ভুল বা "কম" হয়ে থাকে, তখন একটি সঠিক .encodingবৈশিষ্ট্য সরবরাহ করার চেষ্টা করুন । শেষ পর্যন্ত sys.stdout & sys.stderrকোনও অনুবাদ ফাইলের মতো বস্তুর পরিবর্তে।

  • যখন টার্মিনাল / স্ট্রিমটি এখনও উপস্থিত সমস্ত ইউনিকোড অক্ষরকে এনকোড করতে পারে না এবং যখন আপনি কেবল এটির printকারণে ভেঙে যেতে চান না তখন আপনি অনুবাদ ফাইল-এর মতো অবজেক্টে একটি এনকোড-সহ-প্রতিস্থাপনের আচরণটি প্রবর্তন করতে পারেন।

এখানে একটি উদাহরণ:

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

class SmartStdout:
    def __init__(self, encoding=None, org_stdout=None):
        if org_stdout is None:
            org_stdout = getattr(sys.stdout, 'org_stdout', sys.stdout)
        self.org_stdout = org_stdout
        self.encoding = encoding or \
                        getattr(org_stdout, 'encoding', None) or 'utf-8'
    def write(self, s):
        self.org_stdout.write(s.encode(self.encoding, 'backslashreplace'))
    def __getattr__(self, name):
        return getattr(self.org_stdout, name)

if __name__ == '__main__':
    if sys.stdout.isatty():
        sys.stdout = sys.stderr = SmartStdout()

    us = u'aouäöüфżß²'
    print us
    sys.stdout.flush()

পাইথন 2/2 + 3 কোডে অ্যাসসিআই প্লেইন স্ট্রিং লিটারেলগুলি ব্যবহার করে

গ্লোবাল ডিফল্ট এনকোডিংটি পরিবর্তন করার একমাত্র ভাল কারণ (কেবলমাত্র ইউটিএফ -8- এ) আমি মনে করি একটি অ্যাপ্লিকেশন উত্স কোড সিদ্ধান্ত সম্পর্কিত - এবং I / O স্ট্রিম এনকোডিংয়ের কারণে নয়: বাধ্য হয়েই কোডে অ্যাস্কি স্ট্রিং আক্ষরিক লেখার জন্য সর্বদা "বা এসসিআই (কোনও ঘোষণা নেই) ব্যবহার করুন libra ক্রিয়াকলাপ # 127 (যা আজকাল বিরল) এর বাইরে অ্যাস্কি ডিফল্ট এনকোডিং ত্রুটির উপর এখনও মূর্খভাবে নির্ভর করে এমন লাইব্রেরিগুলি পরিবর্তন করুন বা ছেড়ে দিন।u'string' শৈলী ইউনিকোড পলায়ন । এটি বরং ধারাবাহিকভাবে করা যেতে পারে ( অ্যানডাবজারের নিবন্ধটি যা বলে তা সত্ত্বেও ) পাইথন 2 বা পাইথন 2 + 3 উত্স কোড ভিত্তিতে যত্ন সহকারে যা এএসসিআই বা ইউটিএফ -8 প্লেইন স্ট্রিং আক্ষরিক ধারাবাহিকভাবে ব্যবহার করে - যতক্ষণ না এই স্ট্রিংগুলি সম্ভবত নীরবতার মধ্যে থেকে যায় ইউনিকোড রূপান্তর এবং মডিউলগুলির মধ্যে সরানো বা সম্ভাব্যভাবে স্টডআউটে যান। তার জন্য, "# encoding: utf-8

এবং SmartStdoutউপরের স্কিম ছাড়াও অ্যাপ্লিকেশন শুরুতে (এবং / অথবা সিটিকাস্টমাইজ.পি মাধ্যমে) এর মতো করুন - ব্যবহার না করে reload(sys):

...
def set_defaultencoding_globally(encoding='utf-8'):
    assert sys.getdefaultencoding() in ('ascii', 'mbcs', encoding)
    import imp
    _sys_org = imp.load_dynamic('_sys_org', 'sys')
    _sys_org.setdefaultencoding(encoding)

if __name__ == '__main__':
    sys.stdout = sys.stderr = SmartStdout()
    set_defaultencoding_globally('utf-8') 
    s = 'aouäöüфżß²'
    print s

এইভাবে স্ট্রিং আক্ষরিক এবং বেশিরভাগ ক্রিয়াকলাপ (অক্ষর পুনরাবৃত্তি বাদে) ইউনিকোড রূপান্তর সম্পর্কে চিন্তা না করেই স্বাচ্ছন্দ্যপূর্ণ কাজ করে যেন সেখানে কেবল পাইথন 3 থাকবে। ফাইল আই / ও অবশ্যই এনকোডিংগুলি সম্পর্কে সর্বদা বিশেষ যত্নের প্রয়োজন - এটি পাইথন 3-তে রয়েছে।

দ্রষ্টব্য: সমভূমি স্ট্রিংগুলি পরে SmartStdoutআউটপুট স্ট্রিম এনকোন্ডিংয়ে রূপান্তরিত হওয়ার পূর্বে অনিচ্ছাকৃতভাবে utf-8 থেকে ইউনিকোডে রূপান্তরিত হয়।


4

পাইথন 2 এবং পাইথন 3 এবং সর্বদা উত্পাদিত utf8 আউটপুটের সাথে সামঞ্জস্যপূর্ণ কোডটি তৈরি করতে আমি যে পদ্ধতির ব্যবহার করেছি তা এখানে । আমি এই উত্তরটি অন্য কোথাও পেয়েছি, তবে উত্সটি মনে করতে পারছি না।

এই পদ্ধতির পরিবর্তে করে কাজ করে sys.stdoutএমন কিছু বিষয় যা দিয়ে বেশ ফাইল-মত নয় (কিন্তু এখনও শুধুমাত্র মান লাইব্রেরিতে জিনিষ ব্যবহার করে)। এটি আপনার অন্তর্নিহিত লাইব্রেরিগুলির জন্য সমস্যা তৈরি করতে পারে তবে সাধারণ ক্ষেত্রে যেখানে আপনার কাঠামোর মাধ্যমে sys.stdout আউট কীভাবে ব্যবহার করা হয় তার উপর আপনার নিয়ন্ত্রণ ভাল this

sys.stdout = io.open(sys.stdout.fileno(), 'w', encoding='utf8')

3

এটি আমার জন্য সমস্যাটি স্থির করেছে।

import os
os.environ["PYTHONIOENCODING"] = "utf-8"

1

এটি (উইন্ডোজ প্ল্যাটফর্মে (২) পাইথন ২.7 চালাচ্ছেন এবং (৩) বিরক্ত হওয়ায় যেকোন ব্যক্তির পক্ষে এটি দ্রুত হ্যাক (কারণ) একটি দুর্দান্ত টুকরো সফটওয়্যার (যেমন, আপনার দ্বারা লিখিত নয় তাই তত্ক্ষণাত এনকোড / ডিকোড প্রিন্টিংয়ের প্রার্থী নয়) কৌশলগুলি আইডিএল পরিবেশে "চমত্কার ইউনিকোড চরিত্রগুলি" প্রদর্শন করবে না (পাইথনউইন ইউনিকোড সূক্ষ্মভাবে মুদ্রণ করে), উদাহরণস্বরূপ, স্টাফন বায়ার ফার্স্ট অর্ডার লজিক প্রোভারে তাঁর শিক্ষাগত প্রবাদ থেকে আউটপুটটিতে ব্যবহার করা ঝরঝরে ফার্স্ট অর্ডার লজিক প্রতীকগুলি ।

আমি সিস্টেমে পুনরায় লোড করার জন্য জোর দেওয়া ধারণাটি পছন্দ করি না এবং পাইথনিওইনকোডিংয়ের মতো পরিবেশের ভেরিয়েবলগুলি নির্ধারণে (সরাসরি উইন্ডোজ এনভায়রনমেন্ট ভেরিয়েবল চেষ্টা করে এবং সাইট-প্যাকেজগুলিতে সিট কাস্টমাইজ.পি তেও একে বাদ দিয়েই সিস্টেমকে সহযোগিতা করার ব্যবস্থাটি আমি পাইনি and লাইনার = 'utf-8')।

সুতরাং, আপনি যদি সাফল্যের পথে হ্যাক করতে ইচ্ছুক থাকেন তবে আপনার আইডিএল ডিরেক্টরিতে যান, সাধারণত: "সি: \ পাইথন 27 \ লিবি \ আইডল্লিব" আইওবাইন্ডিং.পি ফাইলটি সন্ধান করুন। এই ফাইলটির একটি অনুলিপি তৈরি করুন এবং এটিকে অন্য কোথাও সংরক্ষণ করুন যাতে আপনি যখন চয়ন করেন আপনি আসল আচরণে ফিরে যেতে পারেন। একটি সম্পাদক (উদাহরণস্বরূপ, IDLE) দিয়ে idlelib এ ফাইলটি খুলুন। এই কোড এলাকায় যান:

# Encoding for file names
filesystemencoding = sys.getfilesystemencoding()

encoding = "ascii"
if sys.platform == 'win32':
    # On Windows, we could use "mbcs". However, to give the user
    # a portable encoding name, we need to find the code page 
    try:
        # --> 6/5/17 hack to force IDLE to display utf-8 rather than cp1252
        # --> encoding = locale.getdefaultlocale()[1]
        encoding = 'utf-8'
        codecs.lookup(encoding)
    except LookupError:
        pass

অন্য কথায়, ' চেষ্টা করুন ' এর পরে মূল কোড লাইনটি মন্তব্য করুন যা এনকোডিং ভেরিয়েবলকে লোকেল.গেটে ডিফল্টলোকেলের সমান করে তুলছিল (কারণ এটি আপনাকে সিপি 1252 দেবে যা আপনি চান না) এবং পরিবর্তে জোর করে 'utf-8 '( দেখানো হয়েছে বলে ' এনকোডিং = 'utf-8 ' যোগ করে )।

আমি বিশ্বাস করি এটি কেবল আইডিএল প্রদর্শনকে স্টডআউটে প্রভাবিত করে এবং ফাইলের নাম ইত্যাদির জন্য ব্যবহৃত এনকোডিংটি নয় (এটি ফাইল-সিস্টেম ম্যানেজিংয়ের পূর্বে প্রাপ্ত)। পরে আইডলিতে চালিত অন্য কোনও কোড নিয়ে আপনার যদি সমস্যা হয় তবে কেবল আসল অপরিবর্তিত ফাইলের সাথে আইওবাইন্ডিং.পি ফাইলটি প্রতিস্থাপন করুন।


আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.