LIKE N '% %' অনুসন্ধান করে কেন কোনও ইউনিকোডের অক্ষর এবং = N' 'অনেকের সাথে মেলে?


21
DECLARE @T TABLE(
  Col NCHAR(1));

INSERT INTO @T
VALUES      (N'A'),
            (N'B'),
            (N'C'),
            (N'Ƕ'),
            (N'Ƿ'),
            (N'Ǹ');

SELECT *
FROM   @T
WHERE  Col LIKE N'%�%'

রিটার্নস

Col
A
B
C
Ƕ
Ƿ
Ǹ

SELECT *
FROM   @T
WHERE  Col = N'�' 

রিটার্নস

Col
Ƕ
Ƿ
Ǹ

নীচের সাথে প্রতিটি সম্ভাব্য ডাবল বাইট "চরিত্র" তৈরি করা দেখায় যে =সংস্করণটি তাদের মধ্যে 21,229 এবং এর সমস্তটির সাথেই মিলছে LIKE N'%�%'(আমি একই ফলাফলের সাথে কয়েকটি নন-বাইনারি কোলেশন চেষ্টা করেছি)।

WITH T(I, N)
AS 
(
SELECT TOP 65536 ROW_NUMBER() OVER (ORDER BY @@SPID),
                 NCHAR(ROW_NUMBER() OVER (ORDER BY @@SPID))
FROM master..spt_values v1, 
     master..spt_values v2
)
SELECT I, N 
FROM T
WHERE N = N'�'  

এখানে কি চলছে যে কোনও আলোকপাত করতে সক্ষম কেউ?

COLLATE Latin1_General_BINএরপরে ব্যবহার করা একক অক্ষরের সাথে মেলে NCHAR(65533)- তবে প্রশ্নটি অন্য ক্ষেত্রে এটি কী নিয়ম ব্যবহার করে তা বোঝা। সেই 21,229 টি চরিত্রের সাথে বিশেষ কী যা মেলে =এবং সমস্ত কিছুই ওয়াইল্ডকার্ডের সাথে কেন মিলছে? আমি অনুমান করি এর পিছনে কিছু কারণ রয়েছে যা আমি অনুপস্থিত।

nchar(65534)[এবং অন্য 21 কে] ঠিক পাশাপাশি কাজ করে nchar(65533)। প্রশ্নটি nchar(502) সমান হিসাবে ব্যবহার করে বলা যেতে পারে - এটি LIKE N'%Ƕ%'(সমস্ত কিছুর সাথে মেলে) এবং =ক্ষেত্রে উভয়ই একই রকম আচরণ করে । এটি সম্ভবত বেশ বড় একটি ক্লু।

SELECTশেষ ক্যোয়ারিতে পরিবর্তন করে SELECT I, N, RANK() OVER(ORDER BY N)দেখানো হচ্ছে যে এসকিউএল সার্ভার অক্ষরগুলি র‌্যাঙ্ক করতে পারে না। দেখে মনে হয় যে কোলেশন পরিচালনা করে না এমন কোনও চরিত্রকে সমতুল্য মনে করা হয়।

একটি Latin1_General_100_CS_ASকোলেশন সহ একটি ডাটাবেস 5840 ম্যাচ উত্পাদন করে। ম্যাচগুলি বেশ উল্লেখযোগ্যভাবে Latin1_General_100_CS_ASহ্রাস করে =তবে LIKEআচরণ পরিবর্তন করে না । দেখে মনে হচ্ছে এমন একটি অক্ষর রয়েছে যা পরবর্তী কোলেশনগুলিতে আরও ছোট হয়ে গেছে যেগুলি সমস্ত সমান তুলনা করে এবং LIKEতখন ওয়াইল্ডকার্ড অনুসন্ধানগুলিতে উপেক্ষা করা হয় ।

আমি এসকিউএল সার্ভার ২০১ using ব্যবহার করছি The প্রতীকটি ইউনিকোড প্রতিস্থাপনের অক্ষর, তবে ইউসিএস -২ এনকোডিংয়ের একমাত্র অবৈধ অক্ষরগুলি 55296 - 57343 আফ্রিক এবং এটি পরিষ্কারভাবে পুরোপুরি বৈধ কোড পয়েন্টগুলির সাথে মেলে N'Ԛ'যা এই সীমাতে নেই।

এই সমস্ত অক্ষর LIKEএবং এর জন্য খালি স্ট্রিংয়ের মতো আচরণ করে =। এমনকি তারা সমতুল্য হিসাবে মূল্যায়ন। N'' = N'�'সত্য, এবং আপনি কোনও প্রভাব ছাড়াই LIKEএকক স্পেসের তুলনায় এটি ফেলে দিতে পারেন LIKE '_' + nchar(65533) + '_'LENতুলনাগুলি যদিও বিভিন্ন ফলাফল দেয়, তাই এটি সম্ভবত কেবলমাত্র কিছু স্ট্রিং ফাংশন।

আমি মনে করি LIKEএই ক্ষেত্রে আচরণটি সঠিক; এটি অজানা মানের (যা কিছু হতে পারে) এর মতো আচরণ করে। অন্যান্য অক্ষরের ক্ষেত্রেও এটি ঘটে:

  • nchar(11217) (অনিশ্চয়তা সাইন)
  • nchar(65532) (অবজেক্ট রিপ্লেসমেন্ট ক্যারেক্টার)
  • nchar(65533) (প্রতিস্থাপনের চরিত্র)
  • nchar(65534) (একটি চরিত্র নয়)

সুতরাং আমি যদি সমান চিহ্ন সহ অনিশ্চয়তার প্রতিনিধিত্বকারী সমস্ত অক্ষর সন্ধান করতে চাই তবে আমি এমন একটি কোলেশন ব্যবহার করব যা এর মতো পরিপূরক চরিত্রগুলিকে সমর্থন করে Latin1_General_100_CI_AS_SC

আমার ধারণা, এগুলি হ'ল নোটযুক্ত অক্ষরগুলির গ্রুপ যা ডকুমেন্টেশন, কোলেশন এবং ইউনিকোড সমর্থনে উল্লিখিত হয়েছে ।

উত্তর:


9

কীভাবে একটি "অক্ষর" (যা একাধিক কোড পয়েন্ট সমন্বয়ে গঠিত হতে পারে: সারোগেট জোড়া, অক্ষর সংমিশ্রণ করা ইত্যাদি) অন্যের সাথে কীভাবে তুলনা করা হয় তার বিপরীতে জটিল নিয়মের ভিত্তিতে তৈরি। ইউনিকোডের নির্দিষ্টকরণে বর্ণিত সমস্ত ভাষায় পাওয়া সমস্ত বিবিধ (এবং কখনও কখনও "ওয়াকি") বিধিগুলির জন্য অ্যাকাউন্টিং করার প্রয়োজনের কারণে এটি এত জটিল । এই সিস্টেমটি সমস্ত NVARCHARডেটার জন্য, এবং VARCHARএকটি উইন্ডোজ কোলেশন ব্যবহার করে এমন ডেটা এবং কোনও এসকিউএল সার্ভার কোলেশন নয় (যার সাথে শুরু হয় SQL_) ব্যবহার করে non এই সিস্টেমটি কোনও VARCHARএসকিউএল সার্ভার কোলেশন ব্যবহার করে ডেটা প্রয়োগ করে না কারণ এটি সাধারণ ম্যাপিংগুলি ব্যবহার করে।

বেশিরভাগ নিয়ম ইউনিকোড কলেশন অ্যালগরিদম (ইউসিএ) এ সংজ্ঞায়িত করা হয়েছে । এই বিধিগুলির কয়েকটি, এবং কিছু ইউসিএ-তে আচ্ছাদিত নয়:

  1. allkeys.txtফাইলে দেওয়া ডিফল্ট অর্ডারিং / ওজন (নীচে উল্লিখিত)
  2. কোন সংবেদনশীলতা এবং বিকল্পগুলি ব্যবহার করা হচ্ছে (উদাহরণস্বরূপ এটি কি সংবেদনশীল বা সংবেদনশীল? এবং যদি সংবেদনশীল হয় তবে এটি কি প্রথম ক্ষেত্রে বড় বা ছোট-বড় হয়?)
  3. যে কোনও স্থানীয় ভিত্তিক ওভাররাইডগুলি।
  4. ইউনিকোড স্ট্যান্ডার্ডের সংস্করণটি ব্যবহার করা হচ্ছে।
  5. "হিউম্যান" ফ্যাক্টর (যেমন ইউনিকোড একটি স্পেসিফিকেশন, সফ্টওয়্যার নয়, এবং এটি প্রয়োগের জন্য প্রতিটি বিক্রেতার কাছে রেখে দেওয়া হয়েছে)

আমি মানবিক ফ্যাক্টর সম্পর্কিত চূড়ান্ত বিষয়টির উপর জোর দিয়েছি বলে আশাবাদীভাবে এটি পরিষ্কার করে দেওয়া উচিত যে এসকিউএল সার্ভারের স্পেসিফিকেশন অনুযায়ী সর্বদা 100% আচরণ করা উচিত নয়।

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

http://www.unicode.org/Public/UCA/5.0.0/allkeys.txt

প্রশ্নের মধ্যে পয়েন্ট কোড পয়েন্ট - ইউ + এফএফএফডি - সংজ্ঞাযুক্ত:

FFFD  ; [*0F12.0020.0002.FFFD] # REPLACEMENT CHARACTER

এই স্বরলিপিটি ইউসিএর 9.1 অ্যালকাই ফাইল ফর্ম্যাটে সংজ্ঞায়িত করা হয়েছে :

<entry>       := <charList> ';' <collElement>+ <eol>
<charList>    := <char>+
<collElement> := "[" <alt> <weight> "." <weight> "." <weight> ("." <weight>)? "]"
<alt>         := "*" | "."

Collation elements marked with a "*" are variable.

আমরা যে কোড পয়েন্টটির দিকে নজর দিচ্ছি তার শেষ লাইনটি গুরুত্বপূর্ণ কারণ একটি স্পেসিফিকেশন রয়েছে যা প্রকৃতপক্ষে "*" দিয়ে শুরু হয়। বিভাগে 6.6 ভেরিয়েবল ওজনকে চারটি সম্ভাব্য আচরণ নির্ধারণ করা হয়েছে, কোলেশন কনফিগারেশন মানগুলির উপর ভিত্তি করে আমাদের প্রত্যক্ষ অ্যাক্সেস নেই (এগুলি প্রতিটি কোলেশনের মাইক্রোসফ্ট বাস্তবায়নে কঠোরভাবে কোডড হয়, যেমন কেস-সংবেদনশীল প্রথমে নিম্ন-কেস ব্যবহার করে বা আপার-কেস প্রথমে, কোলিশেশন এবং অন্যান্য সমস্ত প্রকরণ VARCHARব্যবহার করে ডেটা থেকে আলাদা এমন একটি সম্পত্তি SQL_)।

কোন পাথ গ্রহণ করা হয়েছে এবং কোন বিকল্পগুলি ব্যবহার করা হচ্ছে তা নির্ধারণ করার জন্য আমার আরও সঠিক গবেষণা করার সময় নেই, তবে আরও দৃ proof় প্রমাণ দেওয়া যেতে পারে, তবে প্রতিটি কোড পয়েন্টের স্পেসিফিকেশনের মধ্যেই কিছু বলা যায় বা না তা বলা নিরাপদ is "সমান" হিসাবে বিবেচনা করা সর্বদা সম্পূর্ণ স্পেসিফিকেশন ব্যবহার করে না। এই ক্ষেত্রে, আমাদের "0F12.0020.0002.FFFD" রয়েছে এবং সম্ভবত এটি ব্যবহৃত হয় মাত্র 2 এবং 3 মাত্রার (যেমন .0020.0002। )। ".0020.0002" এর জন্য নোটপ্যাড ++ এ একটি "কাউন্ট" করছেন। 12,581 টি মিল খুঁজে পেয়েছে (পরিপূরক চরিত্রগুলি সহ যা আমরা এখনও কাজ করি নি)। "[*" "তে" গণনা করা 409 টি ম্যাচ ফেরায়। একটি প্যাটার্ন ব্যবহার করে একটি RegEx "সন্ধান করুন" / "গণনা করুন" করছেন\[\*\d{4}\.0020\.0002832 ম্যাচ ফেরত। সুতরাং এই সংমিশ্রণের কোথাও কোথাও সম্ভবত কিছু অন্যান্য বিধিও আমি দেখছি না, এবং কিছু মাইক্রোসফ্ট-নির্দিষ্ট প্রয়োগের বিশদ এই আচরণের সম্পূর্ণ ব্যাখ্যা। এবং স্পষ্টতই, আচরণগুলি মিলের সমস্ত চরিত্রের জন্য একই রকম কারণ তারা সবাই একে অপরের সাথে মেলে কারণ নিয়মের প্রয়োগ হওয়ার পরে তাদের সবার ওজন একই হয় (অর্থাত্, এই প্রশ্নটি তাদের কোনও সম্পর্কে জিজ্ঞাসা করা যেতে পারে, না অগত্যা মি। )।

আপনি নীচের প্রশ্নের সাথে এবং কোয়েরির নীচের COLLATEফলাফল অনুসারে ধারাটি পরিবর্তন করতে পারবেন যে কীভাবে বিভিন্ন সংবেদনশীলতা কোলিশনের দুটি সংস্করণ জুড়ে কাজ করে:

;WITH cte AS
(
  SELECT     TOP (65536) ROW_NUMBER() OVER (ORDER BY (SELECT 0)) - 1 AS [Num]
  FROM       [master].sys.columns col
  CROSS JOIN [master].sys.objects obj
)
SELECT cte.Num AS [Decimal],
       CONVERT(VARBINARY(2), cte.Num) AS [Hex],
       NCHAR(cte.Num) AS [Character]
FROM   cte
WHERE  NCHAR(cte.Num) = NCHAR(0xFFFD) COLLATE Latin1_General_100_CS_AS_WS --N'�'
ORDER BY cte.Num;

বিভিন্ন কোলেশনে মিলিত অক্ষরের বিভিন্ন সংখ্যা নীচে রয়েছে।

Latin1_General_100_CS_AS_WS   =   5840
Latin1_General_100_CS_AS      =   5841 (The "extra" character is U+3000)
Latin1_General_100_CI_AS      =   5841
Latin1_General_100_CI_AI      =   6311

Latin1_General_CS_AS_WS       = 21,229
Latin1_General_CS_AS          = 21,230
Latin1_General_CI_AS          = 21,230
Latin1_General_CI_AI          = 21,537

উপরে তালিকাভুক্ত সমস্ত জোটে সত্যকেও N'' = N'�'মূল্যায়ন করে।

হালনাগাদ

আমি আরও কিছু গবেষণা করতে সক্ষম হয়েছি এবং আমি যা পেয়েছি তা এখানে:

এটি "সম্ভবত" কীভাবে কাজ করা উচিত

আইসিইউ কোলেশন ডেমো ব্যবহার করে , আমি লোকালটিকে "এন-ইউএস-ইউ-ভি-পপিক্স" এ সেট করেছি, "প্রাইমারী" তে শক্তি সেট করেছিলাম, "সারণি কীগুলি" দেখায়, এবং নিম্নলিখিত 4 টি অক্ষরে আমি কপি করেছি উপরের ক্যোয়ারীর ফলাফল ( Latin1_General_100_CI_AIকলেশন ব্যবহার করে ):

�
Ԩ
ԩ
Ԫ

এবং এটি ফিরে আসে:

Ԫ
    60 2E 02 .
Ԩ
    60 7A .
ԩ
    60 7A .
�
    FF FD .

তারপরে, http://unicode.org/cldr/utility/character.jsp?a=fffd এ " " এর জন্য অক্ষর বৈশিষ্ট্যগুলি পরীক্ষা করে দেখুন এবং দেখুন যে স্তর 1 বাছাই কী (যেমন FF FD) "uca" বৈশিষ্ট্যের সাথে মেলে। সেই "ইউসিএ" বৈশিষ্ট্যটি ক্লিক করা আপনাকে অনুসন্ধান পৃষ্ঠায় নিয়ে যায় - http://unicode.org/cldr/utility/list-unicodeset.jsp?a=%5B%3 অউকা ৯৩ ডিএফএফএফডিটি 3 এ ৯৫ ডি - মাত্র ১ টি ম্যাচ দেখাচ্ছে। এবং, allkeys.txt ফাইলে, স্তর 1 বাছাই ওজন হিসাবে দেখানো হয়েছে 0F12, এবং এর জন্য কেবল 1 টি মিল আছে।

আমরা আচরণটি সঠিকভাবে ব্যাখ্যা করছি তা নিশ্চিত করার জন্য, আমি অন্য একটি চরিত্রের দিকে নজর রেখেছি : http://unicode.org/cldr/u टिल/character.jsp?a=1FF8- এ ভারিয়ার সাথে গ্রেট ক্যাপিটাল লেটার ওমিক্রন (ইউএসিএ) রয়েছে ( অর্থাত্ স্তর 1 বাছাই ওজন / কোলটিং উপাদান) এর 5F30। "5F30" এ ক্লিক করা আমাদের একটি অনুসন্ধান পৃষ্ঠায় নিয়ে যায় - http://unicode.org/cldr/utility/list-unicodeset.jsp?a=%5B%3 আউকা%3D5F30%3A%5D - 30 টি ম্যাচ দেখাচ্ছে, 20 টির মধ্যে এগুলি 0 - 65535 পরিসরে (উদাঃ U + 0000 - U + FFFF) এর মধ্যে রয়েছে। কোড পয়েন্ট 1 এফএফ 8 এর জন্য allkeys.txt ফাইলটিতে সন্ধান করে আমরা একটি স্তরের 1 ধরণের ওজন দেখতে পাই । নোটপ্যাড ++ এ "কাউন্ট" করছেন12E012E0. 30 টি ম্যাচ দেখায় (এটি ইউনিকোড.অর্গ.র ফলাফলগুলির সাথে মেলে, যদিও এটি ফাইলটি ইউনিকোড বনাম 5.0 এর জন্য যেহেতু এটির গ্যারান্টিযুক্ত নেই এবং সাইটটি ইউনিকোড ভি 9.0 ডেটা ব্যবহার করছে)।

এসকিউএল সার্ভারে, নিম্নলিখিত পরিসংখ্যানগুলি 10 টি পরিপূরক অক্ষরগুলি সরানোর সময় ইউনিকোড.অর্গ অনুসন্ধানের মতো 20 টি ম্যাচ দেয়:

;WITH cte AS
(
  SELECT TOP (65535) ROW_NUMBER() OVER (ORDER BY (SELECT 0)) AS [Num]
  FROM   [master].sys.columns col
  CROSS JOIN [master].sys.objects obj
)
SELECT cte.Num AS [Decimal],
       CONVERT(VARCHAR(50), CONVERT(VARBINARY(2), cte.Num), 2) AS [Hex],
       NCHAR(cte.Num) AS [Character]
FROM cte
WHERE NCHAR(cte.Num) = NCHAR(0x1FF8) COLLATE Latin1_General_100_CI_AI
ORDER BY cte.Num;

এবং, কেবলমাত্র নিশ্চিত হয়েই, আইসিইউ কোলেশন ডেমো পৃষ্ঠায় ফিরে যাওয়া এবং এসকিউএল সার্ভারের 20 টি ফলাফলের তালিকা থেকে নেওয়া 3 অক্ষরের সাথে "ইনপুট" বাক্সে অক্ষরগুলি প্রতিস্থাপন:


𝜪

দেখায় যে তাদের, প্রকৃতপক্ষে, সবার সমান 5F 30ওজন একই স্তরের (অক্ষরের বৈশিষ্ট্য পৃষ্ঠায় "uca" ক্ষেত্রের সাথে মিল রয়েছে)।

তাই হয়, এটা অবশ্যই যেন এই বিশেষ চরিত্র উচিত বলে মনে হচ্ছে না না অন্য কিছু মেলে না।

এটি আসলে কীভাবে কাজ করে (অন্তত মাইক্রোসফ্ট-ল্যান্ডে)

এসকিউএল সার্ভারের বিপরীতে, .NET এর সাথে CompareInfo.GetSortKey পদ্ধতিটির মাধ্যমে স্ট্রিংয়ের জন্য বাছাই কী দেখানোর উপায় রয়েছে । এই পদ্ধতিটি ব্যবহার করে এবং কেবলমাত্র ইউ + এফএফএফডি অক্ষরটি অতিক্রম করে, এটির একটি সাজানোর কী প্রদান করে 0x0101010100। তারপরে, 0 - 65535 এর পরিসরের সমস্ত চরিত্রের মধ্যে পুনরাবৃত্তিটি দেখতে 0x0101010100কোনটির 4500 ম্যাচের ফিরতি কী রয়েছে তা দেখতে । এটি এসকিউএল সার্ভারে ফিরে আসা 5840-এর সাথে ঠিক মিলছে না ( Latin1_General_100_CS_AS_WSকোলেশন ব্যবহার করার সময় ) তবে আমি উইন্ডোজ 10 এবং .NET ফ্রেমওয়ার্ক সংস্করণ 4.6.1 চালিয়ে যাচ্ছি আমরা এখনই পেতে পারি (ইউনিকোড ভি ব্যবহার করে) CharUnicodeInfo ক্লাসের চার্ট অনুযায়ী 6.3.0("কলকারীদের কাছে দ্রষ্টব্য" তে "মন্তব্যগুলি" বিভাগে)। এই মুহুর্তের জন্য আমি একটি এসকিউএলসিএলআর ফাংশন ব্যবহার করছি এবং তাই লক্ষ্য ফ্রেমওয়ার্ক সংস্করণটি পরিবর্তন করতে পারে না। আমি যখন সুযোগ পাব তখন আমি একটি কনসোল অ্যাপ্লিকেশন তৈরি করব এবং ইউনিকোড বনাম 5.0 ব্যবহার করে এটির লক্ষ্যমাত্রার ফ্রেমওয়ার্ক সংস্করণ 4.5 ব্যবহার করব, যা 100 সিরিজের সমাহারগুলির সাথে মেলে।

কী এই পরীক্ষাটি শো, এমনকি .NET এবং U + এ FFFD জন্য SQL সার্ভার মধ্যে মিলের সঠিক একই নম্বর ছাড়া, এটা প্রশংসনীয় স্পষ্ট যে এই হল না SQL সার্ভার-নির্দিষ্ট আচরণ, এবং ইচ্ছাকৃত বা বাস্তবায়ন ভুল যে কাজ কিনা মাইক্রোসফ্ট দ্বারা, ইউ + এফএফএফডি অক্ষরটি সত্যিকার অর্থে বেশ কয়েকটি চরিত্রের সাথে মেলে, এমনকি এটি ইউনিকোড নির্দিষ্টকরণ অনুসারে না হওয়া উচিত। এবং, এই চরিত্রটি ইউ +0000 (নাল) এর সাথে মেলে, এটি সম্ভবত ওজন হারিয়ে যাওয়ার সমস্যা।

করাও

=ক্যোয়ারী বনাম ক্যোয়ারিতে আচরণের পার্থক্য সম্পর্কে LIKE N'%�%', এটি ওয়াইল্ডকার্ড এবং অনুপস্থিত (আমার ধারণা) এই � Ƕ Ƿ Ǹঅক্ষরগুলির জন্য ওজনগুলির সাথে সম্পর্কিত । যদি LIKEশর্তটি সরলভাবে পরিবর্তিত হয় LIKE N'�'তবে এটি =শর্ত হিসাবে একই 3 টি সারি দেয় । যদি ওয়াইল্ডকার্ডগুলির সাথে সমস্যাটি "অনুপস্থিত" ওজনগুলির কারণে না হয় ( বিটিডব্লু 0x00দ্বারা কোনও সাজানোর কী নেই CompareInfo.GetSortKey) তবে এটি অক্ষরগুলির কারণে এমন কোনও সম্পত্তি থাকার কারণে হতে পারে যা প্রাসঙ্গিকের ভিত্তিতে বাছাই কীটি পরিবর্তিত হতে পারে (যেমন পার্শ্ববর্তী অক্ষরগুলি )।


ধন্যবাদ - লিঙ্কযুক্ত allkeys.txt এ দেখে মনে হচ্ছে ঠিক তেমন কোনও ওজন যেমন দেওয়া হয়নি তেমন কিছুই নেই FFFD( *0F12.0020.0002.FFFDকেবল অনুসন্ধানে একটি ফলাফলের সন্ধান করা হচ্ছে)। @ ফরেস্টের পর্যবেক্ষণ থেকে যে তারা সকলেই খালি স্ট্রিংয়ের সাথে মেলে এবং এই বিষয়ে আরও কিছুটা পড়ার মত মনে হচ্ছে যে তারা বিভিন্ন নন-বাইনারি কোলেশনগুলিতে যে ওজন ভাগ করে নিচ্ছে তা আসলে আমার বিশ্বাস শূন্য।
মার্টিন স্মিথ

1
@ মার্টিনস্মিত আইসিইউ কোলেশন ডেমো ব্যবহার করে এবং � A a \u24D05839 ম্যাচের ফলাফলের সেটটিতে ছিল এমন কয়েকজনকে রেখে কিছু গবেষণা করেছিলেন । মনে হচ্ছে আপনাকে প্রথমে ওজন লাফালাফি করতে পারবে না খুঁজছি, এবং এই প্রতিস্থাপন গৃহস্থালির কাজ সঙ্গে শুধুমাত্র এক শুরু হচ্ছে 0F12। অন্য অনেকেরও একটি অনন্য প্রথম ওজন ছিল এবং অনেকেই অ্যলকাই ফাইল থেকে পুরোপুরি অনুপস্থিত ছিল। সুতরাং এটি মানব ত্রুটির কারণে একটি বাস্তবায়ন বাগ হতে পারে। আমি এই চরটি তাদের কলিকেশন চার্টে ইউনিকোড সাইটে "অসমর্থিত" গ্রুপে দেখেছি। আগামীকাল আরও দেখাবে।
সলোমন রুটজকি

রেক্সটেস্টার 4.5 ব্যবহার করে। আমি আসলে সেই সংস্করণটিতে কম ম্যাচ দেখতে পাচ্ছি (3385)। আমি কি আপনাকে আলাদা কিছু বিকল্প সেট করছি? rextester.com/JBWIN31407
মার্টিন স্মিথ

বিটিডাব্লু এর ধরণের কীটি 01 01 01 01 00এখানে উল্লেখ করা হয়েছে সংরক্ষণাগারগুলি.মিলোস.টানা / CompareInfo.InternalGetSortKeyLCMapStringEx
মার্টিন স্মিথ

@ মার্টিনস্মিত আমি এটির সাথে কিছুটা খেললাম তবে এখনও পার্থক্য কি তা নিশ্চিত নয়। .NET যে ওএস চালাচ্ছে সেগুলি ফ্যাক্টরটি কার্যকর করে time ম্যাচের সংখ্যা নির্বিশেষে, যদিও এটি কমপক্ষে আচরণের কারণটি নিশ্চিত করেছে বলে মনে হয়, বিশেষত এখন আপনি যে ব্লগটি সংযুক্ত করেছেন এবং এর সাথে যুক্ত কিছু অন্যান্যকে ধন্যবাদ আমাদেরকে সাজানোর কী কাঠামোর বিষয়ে কিছুটা অন্তর্দৃষ্টি রয়েছে। : CharUnicodeInfo পৃষ্ঠা আমি লিঙ্ক উল্লেখ অন্তর্নিহিত কোলেশন কল, যা আমার পরামর্শ এখানে ভিত্তি connect.microsoft.com/SQLServer/feedback/details/2932336 :-)
সলোমন Rutzky
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.