এই চরিত্রটি কী: '*'?


48

একটি বন্ধু একটি স্ল্যাক চ্যাট রুমে একটি কমান্ড আটকানো হয়েছে যার মধ্যে এই চরিত্রটি রয়েছে *। এটি দেখতে স্বাভাবিকের মতো মনে হচ্ছে *তবে তা নয়:

$ uniprops '*​'
uniprops: no character named ‹*​›

unipropsআমার মেশিনে টাইপ করার সময় যদি আমি প্রাপ্ত নক্ষত্রটি চালাচ্ছি তবে আমি পেয়েছি:

$ uniprops '*'
U+002A ‹*› \N{ASTERISK}
    \pP \p{Po}
    All Any ASCII Assigned Basic_Latin Punct Is_Punctuation Common Zyyy Po P
       Gr_Base Grapheme_Base Graph X_POSIX_Graph GrBase Other_Punctuation
       Pat_Syn Pattern_Syntax PatSyn POSIX_Graph POSIX_Print POSIX_Punct Print
       X_POSIX_Print Punctuation Unicode X_POSIX_Punct

আমি এটিও দেখতে পাচ্ছি যে এটি পাস করে সত্যিকারের নক্ষত্র নয় od:

$ printf '*​' | od -c
0000000   * 342 200 213
0000004

সাধারণটি যখন দেয়:

$ printf '*' | od -c
0000000   *
0000001

রহস্য চরিত্রটি এখানে কিছুটা বড়:

*

এবং সাধারণ নক্ষত্রমণ্ডল (হ্যাঁ, তারা অভিন্ন দেখায়):

*

সুতরাং, unipropsএটি কী তা জানেন না এবং আমি এটি http://www.fileformat.info/ এও খুঁজে পাচ্ছি না । আমি জানি যে যে বন্ধুটি এটি আটকানো হয়েছে সে OS OS এ রয়েছে (আমি লিনাক্সে আছি) এবং এটি নিয়মিত নক্ষত্র হিসাবে তাদের সিস্টেমে কাজ করে। আমি ধরে নিচ্ছি যে স্ল্যাক কোনওভাবে এটি পরিবর্তন করেছে। সুতরাং, কারও কি ধারণা আছে যে চরিত্রটি কী?

মনে রাখবেন যে আপনি প্রশ্ন থেকে সরাসরি অদ্ভুত চরিত্রটি অনুলিপি করতে পারবেন না। স্পষ্টতই, স্ট্যাক এক্সচেঞ্জ ইঞ্জিনটি প্রিন্টিং অ-প্রিন্টিং অক্ষরগুলি সরিয়ে দেয়। "সম্পাদনা" লিঙ্কটিতে ক্লিক করুন এবং সেখান থেকে অনুলিপি করুন।


unipropsUnicode::Tussleপার্ল মডিউলে অন্তর্ভুক্ত একটি ঝরঝরে ছোট স্ক্রিপ্ট যা আপনি এটি যে চরিত্রটি দিয়েছেন তার তথ্য সনাক্ত করে এবং মুদ্রণ করে।


পুনরুত্পাদন করা যায় না। আমি ord("*")আপনার আটকানো স্ট্রিং এবং নেটিভ *কী ব্যবহার করেছি এবং উভয়ের জন্য একই সংখ্যা পেয়েছি (42))
মার্চ হো

7
@ মারচহো অভিশাপ, এসই ইঞ্জিনটি এটি খাচ্ছে বলে মনে হচ্ছে। আমি পোস্ট করার আগে পরীক্ষা করেছিলাম এবং অদ্ভুত চরিত্রটি অনুলিপি করতে পারি (যদিও, আমি বুঝতে শুরু করেছি যে সমস্যাটি এখানে অতিরিক্ত, প্রিন্টিং-বিহীন অক্ষর যুক্ত হয়েছিল) তবে আমি পোস্ট করা প্রশ্ন থেকে কপি করতে পারি না। আপনাকে সম্পাদনা লিঙ্কটিতে ক্লিক করতে হবে এবং সেখান থেকে অনুলিপি করতে হবে।
টেরডন

2
অদ্ভুতভাবে, অ্যান্ড্রয়েড অ্যাপে, শূন্যের সাথে শূন্যটি প্রদর্শিত হবে যেন এটি কোনও সাধারণ স্থান।
ডারোবার্ট

1
মজার বিষয় হল, আমি যখন আমার টার্মিনালে 'সম্পাদনা' থেকে আটকান urxvt, এটি ইতিমধ্যে হিসাবে প্রদর্শিত হয় *<200b>
বোডো

আপনি যদি এটি আপনার কোড বিভাগ থেকে অনুলিপি করেন, যেমন ইউনিপ্রপস লাইন, তবে এটি প্রশ্নের উত্সে যাওয়ার প্রয়োজন ছাড়াই ওকে অনুলিপি করে। (পাইথন 3 ইন্টারপ্রেটারে এটি আটকানোও '*\u200b')
টেসেল্ল্যাটিংহেকলারের

উত্তর:


71

অ্যালাস্টিকের কারণে পেস্ট ব্যর্থ হয়নি, যা নিখুঁতভাবে নিয়মিত নক্ষত্রপুঞ্জ, তবে ইউনিকোড চরিত্রের ইউ + 200 বি এর কারণে । চরিত্রটি হ'ল ZERO WIDTH SPACEএটি অনুলিপি করার সময় প্রদর্শিত হয় না।

পাইথন কোড ব্যবহার:

stro=u"'*​'?"
def uniconv(text):
    return " ".join(hex(ord(char)) for char in text)
uniconv(stro)

ফাংশনটি uniconvইনপুট স্ট্রিংকে (এই ক্ষেত্রে u"'*'?") হেক্সাডেসিমাল ফর্ম্যাটে তাদের ইউনিকোড কোডপেজ সমতুল্য রূপান্তর করে। uস্ট্রিং উপসর্গ একটি ইউনিকোড স্ট্রিং হিসেবে স্ট্রিং চিহ্নিত করা হয়।

আমি আউটপুট পেতে সক্ষম হয়েছি:

0x27 0x2a 0x200b 0x27 0x3f

আমরা পরিষ্কারভাবে দেখতে পারেন 0x27, 0x2aএবং 0x3fহওয়া ASCII / ইউনিকোড হেক্সাডেসিমেল অক্ষরের জন্য মান ', *এবং ?যথাক্রমে। যে পাতা 0x200b, অতএব চরিত্র চিহ্নিত।

দ্রষ্টব্য যে পাইথন কোডটি যখন শরীরে আটকানো হয়েছিল তখন এসই এর মার্কডাউন সফ্টওয়্যার দ্বারা ইউ + 200 বি অক্ষরটি মুছে ফেলা হয়েছিল। প্রত্যাশিত ফলাফলটি পেতে, আপনাকে সম্পাদনা দর্শন ব্যবহার করে এটি সরাসরি শিরোনাম থেকে অনুলিপি করতে হবে।


5
প্রতিস্থাপন করা হচ্ছে strসঙ্গে hexহেক্সাডেসিমেল ইচ্ছা আউটপুট codepoints, তাদের চিনতে বা সন্ধান করার সহজ করে তোলে।
দেলতব

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

4
জিরো প্রশস্ত স্পেস এবং জিরো প্রস্থ জোয়ার অক্ষরগুলি এমন মন্তব্য সিস্টেমের সাথে ব্যবহার করা সহজ যা সাধারণ স্প্যামের শর্তগুলি অবরুদ্ধ করার চেষ্টা করে। উদাহরণস্বরূপ, বার্নি স্যান্ডার্স সমাজতান্ত্রিক হিসাবে সেনেটে নির্বাচিত হয়েছিলেন তা উল্লেখ করার জন্য ("সিআইয়ালিস" এর জন্য কোনও স্প্যামের জাল ট্রিপ না করে) এইচটিএমএল সত্তাগুলিকে সম্মান জানানো হয়, বা চরিত্রের মানচিত্র থেকে চরিত্রটিতে পেস্ট করুন it বা সমতুল্য না হলে তারা।
মন্টি হার্ড

27

জিজ্ঞাসা উবুন্টু চ্যাট রুমে @ রিনজউইন্ডের সহায়তায়, আমি বুঝতে পেরেছি যে সমস্যাটি মোটেই চরিত্র নয়। এর আউটপুট নোট করুন od:

$ printf '*​' | od -c
0000000   * 342 200 213
0000004

342 200 213অন্য চরিত্রের একটি অকট্যাল উপস্থাপনা এবং আমরা ব্যবহার করতে পারেন এই সাইটের কীভাবে এটি দেখার:

Character                   ​               
Character name                              ZERO WIDTH SPACE
Hex code point                              200B
Decimal code point                          8203
Hex UTF-8 bytes                             E2 80 8B
Octal UTF-8 bytes                           342 200 213
UTF-8 bytes as Latin-1 characters bytes     â <80> <8B>

সুতরাং, আমার কাছে যা ছিল তা ছিল দুটি ইউনিকোড অক্ষর, স্বাভাবিক *এবং শূন্য প্রস্থের স্থান।


6
এটি করার আরেকটি উপায় printf '\342\200\213' | uniname। (অজ্ঞাতনামাটি ইউইউটিস প্যাকেজ থেকে।)
ডেল্টাব

1
এই সাইট থেকে আপনার বিভিন্ন ফর্ম্যাট রূপান্তর থাকতে পারে: 002A 200Bএইএইএক্সএস এর জন্য এটি ইউটিএফ -8 এর 2A E2 80 8Bজন্য ইউএফ -16 এর জন্য 002A 200B...
হাস্তুর
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.