टेक्स्ट और संग्रहण क्रम अलग समझें
RFC 9562 §4 में डिफ़ॉल्ट फ़ील्ड क्रम big-endian है, जब तक प्रोटोकॉल स्पष्ट रूप से कुछ और न बताए।
.NET में उसी ID को वापस पढ़ें
5 अक्टूबर 2026 को .NET 10.0.11 में यह कोड चलाया। ToByteArray() की शुरुआत 33 22 11 00 55 44 77 46 है; ToByteArray(true) की शुरुआत 00 11 22 33 44 55 46 77 है। दोनों का अंत 88 99 aa bb cc dd ee ff है। डिफ़ॉल्ट ऐरे को डिफ़ॉल्ट कन्स्ट्रक्टर से पढ़ने पर मूल स्ट्रिंग मिलती है। true वाले ऐरे के लिए वही बाइट क्रम बताने वाला कन्स्ट्रक्टर इस्तेमाल किया। पूरे 16 बाइट उलटना इस उदाहरण के किसी भी परिणाम से मेल नहीं खाता।
$id = [guid]'00112233-4455-4677-8899-aabbccddeeff'
$bytes = $id.ToByteArray()
($bytes | ForEach-Object { $_.ToString('x2') }) -join ' '
# 33 22 11 00 55 44 77 46 88 99 aa bb cc dd ee ff
([guid]::new($bytes)).ToString()
# 00112233-4455-4677-8899-aabbccddeeff
$network = $id.ToByteArray($true)
([guid]::new($network, $true)).ToString()
# 00112233-4455-4677-8899-aabbccddeeffMoyoutil में क्या जाँच सकते हैं?
मौजूदा जनरेटर v4 स्ट्रिंग की सूची बनाता है और बड़े अक्षर या टेक्स्ट/JSON प्रदर्शन बदलता है। यह बाइनरी ऐरे निर्यात या GUID endianness रूपांतरण नहीं करता। एकीकरण परीक्षण के लिए स्ट्रिंग सहेजें और भेजने व पाने वाली API के बाइट नियम मिलाएँ। स्ट्रिंग, 16-बाइट लंबाई, पहले तीन समूह और अंतिम आठ बाइट क्रम से तुलना करें। मेल कराने के लिए बाइट उलटने से पहले API का अनुबंध जाँचना उचित है।
const id = '00112233-4455-4677-8899-aabbccddeeff';
const hex = id.replaceAll('-', '');
const bytes = Uint8Array.from(hex.match(/../g), s => parseInt(s, 16));
console.log(new TextEncoder().encode(hex).length, bytes.length);
// 32 16अक्सर पूछे जाने वाले प्रश्न
क्या हाइफ़न हटाने से 32 अक्षर 16-बाइट फ़ाइल बन जाते हैं?
नहीं। इस कोड में 32 अक्षरों का UTF-8 रूप 32 बाइट है; हर दो हेक्स अंक को एक बाइट मानने पर 16 बाइट मिलते हैं। हैश की तुलना से पहले भी इनपुट का रूप मिलाएँ।