উইন্ডোজ 10 কমান্ড প্রম্পটে গিট লগ আউটপুট এনকোডিংয়ের বিষয়গুলি


89

সমস্যা

git logউইন্ডোজ কমান্ড প্রম্পটে সঠিকভাবে প্রদর্শিত কমান্ড আউটপুটটি কীভাবে তৈরি করা যায় ?

উদাহরণ

git কমান্ড ক্রমটি সমস্যার দিকে পরিচালিত করে আপনি দেখতে পাচ্ছেন যে আমি ডায়ায়্রিটিকাল অক্ষরগুলি সঠিকভাবে টাইপ করতে পারি তবে git logআউটপুটটিতে কোনওরকমে পালানো যায়। UTF-8এনকোডিং সারণী অনুসারে আউটপুট থেকে কৌনিক বন্ধনী ( <এবং >) এর মধ্যে কোডগুলি আগের টাইপ করা git configপ্যারামিটারের সাথে সামঞ্জস্য করে ।

অনুরূপ ইস্যুটির উত্তরগুলির একটিতে আমি LESSCHARSETপরিবেশের পরিবর্তনশীল utf-8হিসাবে সেট করতে চেষ্টা করেছি তবে তারপরে আউটপুটটি গার্ফড হয়ে গেছে:

LESSCHARSET = utf8 সেট করার পরে গিট লগ আউটপুট

আমি জানি .git/configএটি সঠিকভাবে এনকোড হয়েছে utf-8যেমন এটি gitkপ্রত্যাশার দ্বারা পরিচালনা করা হয়।

সঠিক গিটক আউটপুট

এখানে localeপ্রয়োজনে কমান্ড আউটপুট দেওয়া আছে

LANG=
LC_CTYPE="C.UTF-8"
LC_NUMERIC="C.UTF-8"
LC_TIME="C.UTF-8"
LC_COLLATE="C.UTF-8"
LC_MONETARY="C.UTF-8"
LC_MESSAGES="C.UTF-8"
LC_ALL=

সম্পাদনা:

খাঁটি গিট-ব্যাশে আউটপুটও একই রকম :

এখানে চিত্র বর্ণনা লিখুন

সুতরাং আমি বিশ্বাস করি সমস্যাটি শেল স্বতন্ত্র এবং এটি গিট বা এর কনফিগারেশনের সাথে সম্পর্কিত।


4
আপনি কি " উইন্ডোজ কমান্ড লাইনের ইউনিকোড অক্ষরগুলিতে - কীভাবে " সমাধানটির চেষ্টা করেছেন ?
jthill

হ্যাঁ, আমি কোনও ফলাফল ছাড়াই 65001 (ইউটিএফ -8) সহ বেশ কয়েকটি কোড পৃষ্ঠাগুলি চেষ্টা করেছি। দেখে মনে হচ্ছে গিট লগ আউটপুট কীভাবে প্রদর্শিত হবে তাতে chcp কমান্ডের কোনও প্রভাব নেই। এটি সর্বদা একইভাবে প্রদর্শিত হয়।
মার্সিন কওপোটেক

4
দুঃখিত যদি প্রশ্নটি বোকা মনে হয় তবে আপনি কেন গিট বাশের পরিবর্তে উইন্ডোজ কমান্ড প্রম্পটটি ব্যবহার করেন? এটি গিট ব্যবহারের পক্ষে আরও উপযুক্ত, উইন্ডোটি পূর্ণ স্ক্রিন অবধি পরিবর্তনযোগ্য, প্রম্পটে স্বয়ংক্রিয়ভাবে আপনাকে দেখাতে পারে আপনি কোন শাখায়
রয়েছেন

এটি নির্বোধ @ ক্রেইগেক্স নয়, এটি আসলে ভাল। আমি প্রতিদিনের ব্যবহারের জন্য কনইমুতে মোড়ানো গিট-ব্যাশ ব্যবহার করছি। ফলাফল একই i.imgur.com/hMKz9D3r.png । আমি বিশ্বাস করি যে সমস্যাটি শেলটি স্বতন্ত্র এবং গিট বা এর কনফিগারেশনের সাথে সম্পর্কিত বলে অন্যান্য নির্ভরশীল সরঞ্জামগুলির সাথে মানুষকে বিভ্রান্ত না করার জন্য আমি সিএমডি.এক্সএই উদাহরণ দিয়ে আমার সমস্যাটি বর্ণনা করেছি।
মার্সিন কওপোটেক

উত্তর:


159

ঠিক আছে, আমি কিছুটা পরীক্ষা-নিরীক্ষা করে জানতে পেরেছিলাম যে উইন্ডোজ গিট কমান্ডগুলিতে LC_ALLপোলিশ (বা অন্যান্য ইউটিএফ -8 অক্ষর) সঠিকভাবে প্রদর্শন করার জন্য ইউএনআইএক্স ভেরিয়েবলের আসলে প্রয়োজন । এই আদেশটি চেষ্টা করুন:

set LC_ALL=C.UTF-8

তারপরে ফলাফল উপভোগ করুন। আমার কনসোলে যা ঘটেছিল তা এখানে (ফন্ট "কনসোলাস", কোনও chcpপ্রয়োজন নেই):

উইন্ডোজ কনসোল সিএমডি


হালনাগাদ:

  • ওয়েল, উইন্ডোজ কমান্ডগুলির মতো type(কনসোলে প্রদর্শিত ফাইল) সঠিকভাবে কাজ করার জন্য আপনার প্রয়োজন নেই chcp 65001
  • এবং যদি আপনি গিট বাশের আদেশগুলি পছন্দ করেন তবে আপনি catপূর্বোক্ত থেকে লাভও করেছেন set LC_ALL=C.UTF-8

উইন্ডোজ কনসোল সিএমডি, অংশ 2


আপডেট 2: কীভাবে পরিবর্তনগুলি স্থায়ী করা যায়

যেমনটি ব্যবহারকারী মনো ব্লেইন বলেছিলেন, একটি পরিবেশের পরিবর্তনশীল তৈরি করুন LC_ALLএবং এটি C.UTF-8বিশ্বব্যাপী বা কেবল নিজের ব্যবহারকারী প্রোফাইলের জন্য নির্ধারণ করুন (জার্মান স্ক্রিনশটের জন্য দুঃখিত):

পরিবেশ পরিবর্তনশীল তৈরি করুন

পরের বার আপনি একটি কমান্ড প্রসেসর কনসোল খুলুন (cmd.exe) কমান্ড জারি করার সময় আপনার পরিবর্তনশীল মানটি দেখতে হবে echo %LC_ALL%। পাওয়ারশেলে জারি করার সময় আপনার এটি দেখতে হবে$env:LC_ALL

ইউটিএফ -8 কোড পৃষ্ঠা স্থায়ী করার সহজতম উপায়টি বিভাগে টাইপ স্ট্রিংয়ের regeeditনামে নতুন মান যুক্ত করা এবং এটির মূল্য নির্ধারণ করা নয় ।AutorunHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Command Processorchcp 65001

নিবন্ধন সম্পাদক

এখন থেকে, এই কমান্ডটি প্রতিবার আপনি একটি নতুন cmd.exe কনসোল খোলার সময় কার্যকর করা হবে। আপনি এমনকি নতুন উইন্ডোতেও এর আউটপুটটি দেখতে পান: "এক্টিভ কোডপেজ: 65001." (বা আপনার নিজ ভাষায় অনুরূপ)।

ওহ, উপায়: পাওয়ারশিলে কোনও ইউটিএফ -8 এনকোডযুক্ত ফাইলটি সঠিকভাবে প্রদর্শনের জন্য আপনি ব্যবহার করতে পারেন Get-Content -encoding UTF8 file.txtবা cat -encoding UTF8 file.txt( পাওয়ারশেলের catজন্য একটি উপাধি হিসাবে Get-Content)।


LC_ALLগিট নিজেই সেট প্রয়োজন হয় না। অন্যান্য সরঞ্জাম - গিট ইনস্টলওন দিয়ে শিপড - যেমন less, যা পূর্বনির্ধারিত পেজার / দেখুন কোর.প্যাজারটিLC_ALL মানটি ব্যবহার করছে । অন্যান্য বৈধ মানগুলি LC_ALL=de_DE.UTF-8হ'ল স্থানীয়ীকৃত ল্যাং যেমন: জার্মানদের পক্ষে।
ফেরত যান 42

4
আপনি কমান্ডলাইন থেকে পরিবেশ পরিবর্তনশীল সেট করতে পারেনsetx LC_ALL C.UTF-8
anion

কনেমুতে পাওয়ারশেল 6, এটি যুক্ত $env.LC_ALL='ClUTF-8'করার জন্য যথেষ্ট ছিল$Profile
অ্যান্ড্রু স্পেন্সার

67

যদি কেউ পাওয়ারশেলের সমতুল্যে আগ্রহী হয় তবে set LC_ALL=C.UTF-8তা হ'ল:

$env:LC_ALL='C.UTF-8'

তবে এটি কেবলমাত্র বর্তমান অধিবেশনে কাজ করে। এটিকে স্থায়ী করতে দুটি সম্ভাবনা:

  • নামের একটি পরিবেশের পরিবর্তনশীল তৈরি করুন LC_ALLমান সহC.UTF-8
  • বা $env:LC_ALL='C.UTF-8'আপনার $Profileফাইলের মধ্যে রাখুন

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

4
উদাহরণস্বরূপ চলমান: প্রোফাইলপেট ফাইলটি সম্পাদনা করা যেতে পারে: নোটপ্যাড $ প্রোফাইল তারপর মনো প্লেইনের পরামর্শ অনুসারে কোথাও একটি লাইন যুক্ত করুন, v এনভিভি: এলসি_এলএল = 'সিইউটিএফ -8'
টোর আওরস্টাদ

উইন্ডোজ 10 এ পাওয়ারশেল 6 + কনেমু সহ: এটি কাজ করে, অন্য কিছুর প্রয়োজন ছিল না
অ্যান্ড্রু স্পেন্সার

6

আমি ব্যবহার করছি গীত মাধ্যমে PowerShell কোর v7.0.3 সঙ্গে সর্বোকৃষ্ট-Git ভিতরে ইনস্টল উইন্ডোজ টার্মিনাল উইন্ডোজ 10।

আমি উত্তরের মাধ্যমে ব্রাউজ করছি এবং তাদের অনেকগুলি চেষ্টা করেছি। আমার জন্য যে সমাধানগুলি কাজ করেছিল তা হ'ল:

এই সমাধান দুটি পৃথকভাবে কাজ করে work সমস্যাটি গিটের সাথে সম্পর্কিত বলে মনে হওয়ায় আমি গিট কমান্ডটি ব্যবহার করা পছন্দ করেছি এবং পাওয়ারশেল প্রোফাইলটি আরও পরিষ্কার থাকে।


গিট সেটিংয়ের জন্য ধন্যবাদ। গিট সেটিংস আমার পক্ষে কাজ করে, তবে এটিও আবিষ্কার করেছে যে $env:LESSCHARSET='utf-8'উইন্ডোজ টার্মিনালের পাওয়ারশেল 5 এর জন্য সেটিংটিও দুর্দান্ত কাজ করে ।
এম্লোসকোট

5

আমি ব্যবহার git bashউপর WIN10। আমার হিসাবে, 4 টি সেটিংস আমার প্রত্যাশা হিসাবে উপস্থিতি তৈরি করে।

  • envস্থাপন. যোগ LC_ALL=C.UTF-8, LESSCHARSET=UTF-8থেকে PATHবিশ্বব্যাপী।

  • gitকনফিগার git config --global i18n.logOutputEncoding utf-8

  • git bashস্থাপন. সেট Options-> Text-> Character setকরুন utf-8। অথবা সেট localeএবং Character setউভয় default। সঠিকটি চয়ন করার জন্য এটি যথেষ্ট স্মার্ট encoding

সম্পন্ন.


আমি gitউইন্ডোজ কমান্ড প্রম্পটে ব্যবহার করি এবং প্রথম দুটি পদক্ষেপটি আমার মামলার সমস্যার সমাধান করে।
নিগলি

0

আমাকে উইন্ডো পাওয়ারশেল কমান্ড প্রম্পটটি ডিফল্টর পরিবর্তে ব্যবহার করতে হয়েছিল (উইন্ডোকি + এক্স)


0

লিনাক্সে আমার এ জাতীয় সমস্যা ছিল। এবং সমস্যাটি হ'ল আমি লোকেলগুলি উত্পন্ন করিনি। সুতরাং আমার আউটপুটটি localeইউটিএফ -8 ছাড়াই সমস্ত "সি" বর্ণগুলি অর্জন করছিল। এই সমস্যার সমাধানের উদ্দেশ্যে, আমি uncommented en_US.UTF-8এবং ru_RU.UTF-8/etc/locale.gen হবে। তারপরে আমি লোকালেক্টল সেট-লোকেল চালিয়ে যাচ্ছি ল্যাং = রু_আরইউ.এফএফ -8 এবং পুনরায় বুট হয়েছি। এবং সিস্টেমে পুনরায় চালু। এর পরে সিরিলিকটি সাধারণত প্রদর্শিত হয়।

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