সিআরএলএফ লাইন টার্মিনেটরগুলি ইউটিএফ -8 এ নন-আইএসও প্রসারিত-এএসসিআইআই পাঠ্য থেকে এনকোডিং কীভাবে পরিবর্তন করবেন?


21

আমার কাছে একটি টেক্সট ফাইল রয়েছে:

$ file -i x.txt
x.txt: text/plain; charset=unknown-8bit
$ file x.txt 
x.txt: Non-ISO extended-ASCII text, with CRLF line terminators

এবং কিছু অক্ষর রয়েছে যা ভুলভাবে এনকোড করা হয়েছে:

trwa³y, sta³y, usuwaæ

আমি কীভাবে এই ফাইলটির এনকোডিংটিকে ইউটিএফ -8 এ পরিবর্তন করতে পারি? আমি এখন পর্যন্ত নিম্নলিখিত পদ্ধতিতে চেষ্টা করেছি:

$ iconv -f ASCII -t UTF-8 x.txt
                puiconv: illegal input sequence at position 4

হয়তো আমার একরকম ব্যবহার করা উচিত extended ASCII( high ASCII) তবে এটির iconvএনকোডিং তালিকায় এটি খুঁজে পাচ্ছি না ।


2
আপনি কোথাও ফাইল আপলোড করতে পারেন?
জানোস

এখানে 8-বিট আইএসও এনকোডিংগুলির একটি সুবিধাজনক তালিকা রয়েছে, এখানে সবগুলি পাশাপাশি দেখানো হয়েছে । আপনার ফাইলটিতে আপনি যা পর্যবেক্ষণ করেছেন তার মধ্যে কি কি তার কাছাকাছি দেখায়? উদাহরণস্বরূপ, আপনি যদি "sta³y" "স্ট্যাসি" হওয়া উচিত বলে মনে করেন, তবে সেই শব্দটিতে অদ্ভুত হেক্স কোডটি যা আছে তার জন্য কোন এনকোডিংয়ের একটি "সি" রয়েছে তা সন্ধান করুন।
1024

সম্ভবত 90% সময়, "নন-আইএসও এক্সটেন্ডেড-এএসসিআইআই টেক্সট" উইন্ডোজ 1252 কোডেপে কোডযুক্ত এনকোডযুক্ত একটি ফাইল হবে । "এটি সম্ভবত বিশ্বের সবচেয়ে বেশি ব্যবহৃত 8-বিট চরিত্রের এনকোডিং" " (উইকিপিডিয়া)। প্রথমে এটি চেষ্টা করুন:iconv -f windows-1252 -t utf-8 file
nyov

উত্তর:


33

file আপনাকে "নন-আইএসও প্রসারিত-এএসসিআইআই পাঠ্য" বলে কারণ এটি সনাক্ত করে যে এটি হ'ল:

  • সম্ভবত লাইন ব্রেক ব্যতীত নিয়ন্ত্রণের অক্ষর (বাইট মান 0 values31) এর অভাব থেকে একটি "পাঠ্য" ফাইল;
  • "এক্সটেন্ডেড-এএসসিআইআই" কারণ এএসসিআইআই রেঞ্জের বাইরের অক্ষর রয়েছে (বাইট মান -128);
  • "নন-আইএসও" কারণ 128-1515 রেঞ্জের অক্ষর রয়েছে ( আইএসও 8859 নিয়ন্ত্রণের অক্ষরের জন্য এই সীমা সংরক্ষণ করে)।

এই ফাইলটি কোন এনকোডিংয়ের মধ্যে রয়েছে বলে মনে করতে হবে Enc আপনি এনকারার স্বয়ংক্রিয় স্বীকৃতিটি চেষ্টা করতে পারেন । আপনার পাঠ্যটি কোন ভাষায় তা বলার মাধ্যমে এটি সঠিক দিকে ঠেলে দেওয়ার প্রয়োজন হতে পারে।

enca x.txt
enca -L polish x.txt

ফাইলটি রূপান্তর করতে, -xবিকল্পটি পাস করুন :enca -L polish x.txt -x utf8 >x.utf8.txt

আপনি যদি এনকা ব্যবহার করতে না পারেন বা না চান তবে আপনি নিজেই এনকোডিংটি অনুমান করতে পারেন। প্রায় খুঁজছেন একটি বিট আমাকে বলেছিলেন যে, এই পোলিশ টেক্সট এবং শব্দ, trwały, stały, usuważ হয় তাই আমরা একটি অনুবাদ যেখানে খুঁজছেন ³łএবং æż। মত এই সৌন্দর্য ল্যাটিন -2 বা ল্যাটিন -10 বা সম্ভাবনা বেশি (প্রদত্ত "অ-আইএসও" CP1250 যা তুমি দেখার যেমন latin1 । হল UTF-8 ফাইল রূপান্তর করুন করার জন্য, আপনি ব্যবহার করতে পারেন recode বা iconv

recode CP1250..utf8 <x.txt >x.utf8.txt
iconv -f CP1250 -t UTF-8 <x.txt >x.utf8.txt

আমি < x.txt > x.utf8.txtকেন ব্যবহার করব <এবং তারপরে অংশ নিই না >? এটা কিভাবে কাজ করে?
ফিলিপ বার্টুজি


1

জিডিট দিয়ে পাঠ্য ফাইলটি খুলুন এবং "হিসাবে সংরক্ষণ করুন .." ডায়ালগটিতে আপনি বর্তমান এনকোডিংটি দেখতে পাবেন।


0

X.txt এর সঠিক এনকোডিংটি কী তা জানার চেষ্টা করেছিলেন? আপনি এর সাথে সমর্থিত এনকোডিংগুলির একটি তালিকা পাবেন

আইকনভ - তালিকা

কখনও কখনও আমার সাথে এটি ঘটে যে আমি লাতিন 1 এবং utf8 এর মধ্যে একটি অমিল পেয়েছি। তারপরে এটি প্রায়শই এটিকে ইউটিএফ 8 এবং এর বিপরীতে রূপান্তর করতে সহায়তা করে।


0

আমি এনকা লাইব্রেরি ব্যবহার করে একটি স্বয়ংক্রিয় রূপান্তর স্ক্রিপ্ট তৈরি করেছি, আমি সাবটাইটেলগুলি ইউটিএফ -8 এ রূপান্তর করতে আমার এনএএস এ ব্যবহার করি তবে এটি কোনও স্বয়ংক্রিয় রূপান্তরকরণের জন্য ব্যবহার করা যেতে পারে

বিনামূল্যে নির্দ্বিধায় :)

সম্পাদনা করুন:

#!/bin/bash
LANGUAGE=czech
TO=utf8
CONVERT="enca -L $LANGUAGE -x $TO"

# Find and onvert
find ./ -type f -name "*.srt" | while read fn; do
  IS_TARGET=`enca "${fn}" | egrep -ow -m 1 'UTF-8|Unrecognized|KOI8-CS2|7bit ASCII|UCS-2|Macintosh Central European'`

    if [ "$IS_TARGET" != "UTF-8" ] &&
       [ "$IS_TARGET" != "UCS-2" ] &&
       [ "$IS_TARGET" != "Macintosh Central European" ] &&
       [ "$IS_TARGET" != "Unrecognized" ] &&
       [ "$IS_TARGET" != "7bit ASCII" ] &&
       [ "$IS_TARGET" != "KOI8-CS2" ]; then

        echo "${fn} ---- Will be converted!"
    # optional backup of original srt
        # cp "${fn}" "${fn}.bak"
        $CONVERT "${fn}"
    fi  

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