Protocol Buffers Kod Çözücü
Kodlanmış bir Protocol Buffers mesajını yüklemeden ve şemasını biliyormuş gibi davranmadan inceleyin. Tarayıcı tabanlı bu kod çözücü; hex, Base64, Base64URL, ham UTF-8 metni veya ikili dosya girişini açıkça seçmenizi sağlar. Geçerli tüm wire türlerini işler, 64 bit tamsayıları kesin tutar, bozuk verinin bayt ofsetini bildirir ve uzunlukla sınırlandırılmış belirsiz değerlerin tüm eksiksiz yorumlarını gösterir. Payload tarayıcıda kalır; veride adı geçen hizmetlere asla bağlanılmaz.
Nasıl çalışır
-
1
Kodlamayı tam olarak seçin
Hex, Base64, Base64URL, ham UTF-8 metni veya ikili dosya seçin. Araç giriş biçimini otomatik olarak tahmin etmez.
-
2
Wire alanlarını inceleyin
Etiketleri, alan numaralarını ve wire değerlerini çözün; geçerli iç içe veya packed adayların tümünü şema türü atamadan açın.
-
3
Raporu dışa aktarın
Şemasız JSON, formüllere karşı güvenli CSV veya okunabilir metin raporu indirin.
Şemasız bir Protobuf kod çözücü neyi kanıtlayabilir?
Protocol Buffers, özgün .proto bildirimlerini değil alan etiketleri ve değerlerden oluşan bir diziyi saklar. Resmî protobuf kodlama kılavuzu her etiketi (field_number << 3) | wire_type olarak tanımlar. Bu nedenle kod çözücü alan numarasını, wire türünü, bayt sınırlarını ve yapısal olarak mümkün kodlamaları kesinleştirebilir. Aynı baytlar farklı bildirimlerde kullanılabildiği için bir varint’in uint64, int64, sint64, bool veya enum olduğunu kanıtlayamaz.
Giriş modu her zaman açıkça seçilir. Hex, ASCII boşluklara ve en fazla bir baştaki 0x değerine izin verir. Base64 ile Base64URL; uzunluk, padding ve kullanılmayan dolgu bitleri dâhil ayrı doğrulanır; standart ve URL-safe alfabeler karıştırılamaz. Ham metin, tarayıcının TextEncoder bileşeninin ürettiği UTF-8 baytlarının aynısıdır, ters eğik çizgili kaçışlar yorumlanmaz. Dosyada birebir baytlar kullanılır.
Wire türleri ve yorumlar
| Wire türü | Kodlanmış değer | Raporda gösterilenler |
|---|---|---|
| 0 | Varint | Kesin işaretsiz, ikinin tümleyeni işaretli ve ZigZag değerleri; boolean yalnızca 0 veya 1 için |
| 1 | Sekiz little-endian bayt | Kesin fixed64 ve sfixed64 tamsayıları ile double adayı |
| 2 | Uzunluğu izleyen baytlar | Hex ve Base64, geçerliyse katı UTF-8 ve eksiksiz tüm iç içe veya packed adaylar |
| 3 / 4 | Grup başlangıç ve bitiş etiketleri | Aynı alan numaralı grup alt alanları; bitiş etiketi sınırdır, ayrı kayıt değildir |
| 5 | Dört little-endian bayt | Kesin fixed32 ve sfixed32 tamsayıları ile float adayı |
JavaScript’in sıradan Number türü her 64 bit tamsayıyı kesin gösteremez. Ayrıştırıcı baştan sona BigInt kullanır ve kesin tamsayıları görüntüleme ile dışa aktarma için ondalık dizeye dönüştürür. NaN, sonsuzluklar ve negatif sıfır gibi özel kayan nokta değerleri de JSON’un sessizce değiştirmemesi için dize olarak aktarılır.
Uzunlukla sınırlandırılmış belirsizliği anlamak
Wire türü 2; dizeler, ham baytlar, gömülü mesajlar ve packed tekrarlanan skaler değerler için kullanılır. Şema olmadan bir bayt dizisi birkaç role aynı anda uyabilir. Örneğin 2a 03 01 02 03, üç bayt içeren 5. alandır. Bunlar geçerli packed varint’ler [1, 2, 3] olduğu gibi sıradan baytlardır. Kod çözücü iki adayı da gösterir ve olasılık sıralaması yapmaz.
İç içe mesaj adayı yalnızca uzunlukla sınırlandırılmış gövdenin tamamı eksiksiz mesaj olarak ayrıştırılırsa görünür. Packed varint, fixed32 ve fixed64 adayları da tüm baytları tüketmelidir. Katı UTF-8 adayı, dizinin tamamını değiştirme karakteri olmadan çözmelidir. Bunlar yapısal olasılıklardır; alanın bildirilmiş türü değildir.
Modern şemalar çoğunlukla gömülü mesajları tercih etse de gruplar wire dil bilgisine göre işlenir. Başlangıç etiketi aynı alan numaralı bitiş etiketiyle kapanmalıdır. Kök düzeyinde bitiş, farklı numara veya eksik kapanış tam bayt ofsetinde önemli hata üretir. Önceden çözülen eksiksiz alanlar görünür kalır; eksik baytlar ve bilinmeyen değerler hiçbir zaman sahte sıfıra dönüşmez.
Sınırlar, framing ve güvenli kullanım
Kod çözücü 10 MiB’a kadar çerçevesiz tek mesaj kabul eder. Uzunluk önekli akışları, gRPC frame’lerini, sınırlandırılmış mesaj dosyalarını veya taşıma zarflarını ayırmaz. Önce framing’i kaldırın, sonra tek mesajı çözün. Ayrıştırıcı kayıt sayısını, özyineleme derinliğini, görünür satırları ve aday işlemlerini sınırlar; bu yaklaşım resmî büyük veri kümeleri ve uygulama sınırları rehberleriyle uyumludur.
Alan numaraları 1 ile 536.870.911 arasında olmalıdır. Resmî alan numarası kılavuzu 19.000–19.999 aralığını uygulamalara ayırdığı için uyarı gösterilir. Wire türleri 6 ve 7 geçersizdir.
Ayrıştırma ve dışa aktarma yerel olarak gerçekleşir. Çok adımlı görünüm, sınırlı payload’u bu sekmenin sessionStorage alanında en fazla iki saat tutabilir; baştan başlamak siler. URL’ye hiçbir şey eklenmez ve sunucularımız üzerinden gönderilmez. JSON, açıkça bu araca özgü biçimde bir çözümleme raporudur; ProtoJSON değildir. CSV, UTF-8 BOM ile başlar ve e-tabloda daha güvenli açılması için formüle benzeyen hücreleri etkisizleştirir. Rapor yine de gizli uygulama verileri içerebilir; paylaşmadan önce inceleyin.
Sık Sorulan Sorular
Hayır. Wire formatı alan numaralarını ve wire kodlamalarını korur; fakat bildirilmiş farklı skaler türler aynı baytları paylaşabilir. Adlar, yorumlar ve şema amacının çoğu yer almaz.
Hayır. Giriş doğrulama, ayrıştırma, filtreleme ve dışa aktarma tarayıcıda çalışır. Payload sunucularımıza gönderilmez ve URL’ye konmaz.
Uzunlukla sınırlandırılmış değer; bayt, UTF-8 metni, gömülü mesaj veya packed değerleri temsil edebilir. Şema yokken tüm eksiksiz adayları göstermek tahmin etmekten daha doğrudur.
O noktada etiket, varint, sabit genişlikli değer, bildirilmiş uzunluk veya grup sınırı eksik ya da geçersizdi. Önceki eksiksiz alanlar kısmi raporda kalır.
Doğrudan değil. Kod çözücü tek protobuf mesajı okur; gRPC, varint uzunluğu veya başka taşıma framing’ini kaldırmaz. Önce tek mesajın payload’unu çıkarın.
İlgili Araçlar
Dosya Boyutu Dönüştürücü
Bayt, KB, MB, GB, TB ve ikili IEC birimleri (KiB, MiB, GiB, TiB) arasında, ondalık ve ikiliyi dilediğiniz gibi birleştirerek dönüşüm yapın.
Kurgusal telefon numarası oluşturucu
Beş ülkede resmen ayrılmış aralıklardan 50 adede kadar kurgusal numara üretin.
Kodu görsele dönüştür
Kodu yapıştırın; tema, renkler, yazı boyutu, boşluk, başlık ve satır numaralarını ayarlayın, canvas önizlemesini kontrol edin ve PNG indirin. Sözdizimi vurgusu olmayan düz metin çizimi.
CSS Fiyat Tablosu Oluşturucu
HTML + CSS ile tek bir fiyat kartı oluşturun: paket adı, fiyat ve marka vurgu rengi. Kodu açılış sayfanıza kopyalayın.
E-posta Doğrulayıcı
Bir e-posta adresini doğrulayın: RFC 5322 sözdizimi kontrolü, canlı MX kaydı sorgulama, ayrıca yerel kısım, alan adı ve uzunluk bilgileri. Hiçbir e-posta gönderilmez.
Markdown'dan Slaytlara
Markdown'ı `---` ayırıcıları ve konuşmacı notlarıyla bir slayt setine dönüştürün ve HTML veya PDF olarak dışa aktarın. Reveal.js ile çalışır.
Araç diğer dillerde mevcuttur
- Protocol Buffers 디코더 [KO]
- Protocol Buffers-avkodare [SV]
- Protocol Buffers-decoder [NL]
- Dekoder Protocol Buffers [PL]
- Protocol-Buffers-Decoder [DE]
- ตัวถอดรหัส Protocol Buffers [TH]
- Decodificador de Protocol Buffers [ES]
- Dekoder Protocol Buffers [ID]
- أداة فك ترميز Protocol Buffers [AR]
- Décodeur Protocol Buffers [FR]
- Protocol Buffers デコーダー [JA]
- Decodificador de Protocol Buffers [PT]
- Công cụ giải mã Protocol Buffers [VI]
- Protocol Buffers Decoder [EN]
- Decodificatore Protocol Buffers [IT]
- Декодер Protocol Buffers [RU]
- Protocol Buffers 解码器 [ZH]