JVBERi0 ile başlayan Base64 hangi dosyadır?
JVBERi0 = PDF Bir PDF. Her PDF `%PDF-` baytlarıyla başlar ve bunlar Base64'te `JVBERi0` olur. `iVBORw0KGgo` bir PNG, `/9j/` bir JPEG, `UEsDB` ise bir ZIP'tir; DOCX ve XLSX de buna dahildir.
Base64'ü çevrimiçi PDF'e dönüştürün: ham Base64, data URI ya da JSON yanıtının tamamını yapıştırın. Gerçek dosya türünü bulur, önizler, indirir ve kesik PDF'leri işaretler. PDF'ten Base64'e de çevirir. Hiçbir şey yüklenmez.
Okunma biçimi:
PDF'i ya da başka herhangi bir dosyayı buraya bırakın veya seçmek için tıklayın
Her dosya türü · en fazla 50 MB · hiçbir zaman yüklenmez
Her dosya türü sabit "sihirli" baytlarla başlar, bu yüzden Base64 hâli de sabit karakterlerle başlar. Aşağıdaki önekler, bu aracın kullandığı motorla gerçek dosya başlıklarından hesaplanmıştır.
| Base64 başlangıcı | Dosya türü | Sihirli baytlar (hex) |
|---|---|---|
JVBERi0 | 25 50 44 46 2D | |
iVBORw0KGgoAAAANSUhEU | PNG | 89 50 4E 47 0D 0A 1A 0A 00 00 00 0D 49 48 44 52 |
/9j/ | JPEG | FF D8 FF |
R0lGOD | GIF | 47 49 46 38 |
UEsDB | ZIP / DOCX / XLSX / PPTX | 50 4B 03 04 |
0M8R4KGxGu | Office 97–2003 (DOC/XLS/PPT) | D0 CF 11 E0 A1 B1 1A E1 |
H4sI | Gzip | 1F 8B 08 |
UklGR | RIFF (WebP / WAV / AVI) | 52 49 46 46 |
SUQz | MP3 (ID3) | 49 44 33 |
e1xydG | RTF | 7B 5C 72 74 66 |
Go Tools'un kodlama araçlarını geliştiren mühendisler tarafından yazılıp incelenmiştir. Bu sayfadaki her uzunluk, önek ve örnek, sayfanın kendi motoru tarafından üretilir ve otomatik testlerle doğrulanır.
JVBERi0 = PDF Bir PDF. Her PDF `%PDF-` baytlarıyla başlar ve bunlar Base64'te `JVBERi0` olur. `iVBORw0KGgo` bir PNG, `/9j/` bir JPEG, `UEsDB` ise bir ZIP'tir; DOCX ve XLSX de buna dahildir.
+%33,3 Her 3 bayt için 4 karakter, yani yaklaşık %33,3 daha büyük: 1 MB'lık (1.048.576 bayt) bir PDF 1.398.104 karakter olur. E-posta eklerinde olduğu gibi her 76 karakterde bir satır sonu eklenirse 1.434.896 karakter, yani %36,8 daha büyük olur.
Base64, rastgele baytları yalnızca 64 güvenli metin karakteriyle (A–Z, a–z, 0–9, +, /) yazar; dolgu olarak = kullanılır. Her 3 bayt 4 karaktere dönüşür. Böylece PDF gibi ikili bir dosya yalnızca metin taşıyan kanallardan geçebilir: bir JSON alanı, bir XML öğesi, bir e-posta gövdesi, bir veritabanı metin sütunu. Base64'ü PDF'e dönüştürmek bu işlemi tersine çevirmektir: karakterler yeniden baytlara çevrilir ve .pdf uzantısıyla kaydedilir. Sorun şu ki gerçek hayatta Base64 nadiren temiz gelir: data: öneki, JSON kaçışları, satır sonları ya da farklı bir alfabeyle gelir ve pek çok dönüştürücü sessizce açılmayan bir dosya üretir.
%PDF-1.4 → bytes 25 50 44 46 2D 31 2E 34 JVBERi0xLjQ= → the same bytes in Base64 data:application/pdf;base64,JVBERi0xLjQ= → data URI form
data URI'leri, \/ ve \n JSON kaçışlarını, tırnakları, MIME satır sonlarını, URL-safe - _ karakterlerini, URL'lerden gelen %2B %2F dizilerini, PEM başlıklarını ve eksik = dolgusunu işler — attığı her adımı da gösterir.
{"code":0,"data":{"file":"JVBERi0…"}} yanıtını olduğu gibi yapıştırın. Base64'e benzeyen en uzun alan kullanılır ve yolu (data.file) gösterilir; böylece hangi alanın çözüldüğünü bilirsiniz.
PDF, PNG, JPEG, GIF, WebP, DOCX, XLSX, PPTX, ZIP, GZIP, MP3, MP4 ve 40'tan fazla format daha ilk baytlarından tanınır. Önek aksini söylese bile indirilen dosya doğru uzantıyı alır.
%%EOF içermeyen PDF'leri (kopyalarken ya da sütun uzunluk sınırı yüzünden kesilmiş), iki kez kodlanmış Base64'ü, Base64 yerine yapıştırılmış hex'i, gzip ile sıkıştırılmış veriyi ve şifreli PDF'leri işaretler.
PDF'ler tarayıcının yerleşik görüntüleyicisinde açılır, görseller ve SVG gösterilir, metin ve JSON metin olarak görüntülenir. HTML asla işlenmez — yalnızca kaynağı gösterilir — çünkü işlenseydi bu sayfada çalışırdı.
50 MB'a kadar bir dosya bırakın; düz Base64 ya da data URI alın, isterseniz URL-safe veya 76 karakterde satır sonlu olarak, boyut artışı da tam olarak gösterilir.
base64.b64decode open('out.pdf', 'wb').write(base64.b64decode(s)). - ve _ için urlsafe_b64decode kullanın; b64decode, validate=True verilmedikçe satır sonlarını yok sayar.
java.util.Base64 Files.write(Path.of("out.pdf"), Base64.getMimeDecoder().decode(s)). getDecoder() satır sonlarını reddeder; getUrlDecoder() ise - ve _ içindir.
Buffer fs.writeFileSync('out.pdf', Buffer.from(s, 'base64')). Buffer iki alfabeyi de kabul eder ve boşlukları yok sayar, ama diğer geçersiz karakterleri de hata vermeden sessizce atlar; bu yüzden sonucun %PDF- ile başladığını kontrol edin.
atob / Uint8Array.fromBase64 Blob oluşturmadan önce bir Uint8Array hazırlayın. Uint8Array.fromBase64() daha yeni yerleşik yöntemdir; hedef tarayıcılarınızdaki desteğini kontrol edin.
base64_decode file_put_contents('out.pdf', base64_decode($s, true)). Katı mod için true verin; aksi hâlde geçersiz karakterler sessizce atılır.
Convert.FromBase64String File.WriteAllBytes("out.pdf", Convert.FromBase64String(s)). Boşluklara izin verilir; - ve _ karakterlerine verilmez.
base64 -d / certutil macOS ve Linux: base64 -d < in.txt > out.pdf. Windows: certutil -decode in.txt out.pdf.
JVBERi0xLjQKMSAwIG9iago8PCAvVHlwZSAvQ2F0YWxvZyAvUGFnZXMgMiAwIFIgPj4K…
PDF · sürüm 1.4 · file.pdf olarak indirilir
%PDF- anlamına gelen JVBERi0 ile başlıyor. Temizlenecek bir şey yok, olduğu gibi çözülür.
"data:application\/pdf;base64,JVBERi0xLjQK…"
Okunma biçimi: çevreleyen tırnaklar kaldırıldı → JSON kaçış dizileri geri alındı → data URI öneki kaldırıldı (application/pdf)
PHP'nin json_encode fonksiyonu ve bazı Java serileştiricileri / karakterini \/ olarak yazar. Bunu geri almayan bir çözücüye yapıştırıldığında ters eğik çizgi geçersiz bir karakter olur.
{"code":0,"data":{"name":"invoice.pdf","file":"JVBERi0xLjQK…"}} Okunma biçimi: JSON'dan data.file alanı alındı
Dizeyi elle kesip çıkarmanıza gerek yok. Base64'e benzeyen en uzun alan kullanılır ve yolu gösterilir.
data:application/pdf;base64,iVBORw0KGgoAAAANSUhEUgAA…
Uyarı: data URI application/pdf diyor, ama baytlar PNG türünde. file.png olarak kaydedildi
Pek çok dönüştürücü hiçbir okuyucunun açamayacağı bir .pdf yazardı. Sihirli baytlar etiketten önce gelir.
255044462d312e370a…
Uyarı: bu onaltılık (hex) gibi görünüyor — hex olarak okunduğunda bir PDF. [Hex olarak çöz]
Hex rakamlarının hepsi geçerli Base64 karakteri olduğundan Base64 çözme hata vermez; sessizce anlamsız veri üretir. 25 50 44 46, %PDF demektir.
Ham Base64, data:application/pdf;base64,…, JSON'dan \/ kaçışlarıyla kopyalanmış bir dize ya da API yanıtının tamamı. Çok uzun dizeler için yapıştırmak yerine .txt dosyası aç düğmesini kullanın.
Kutunun altındaki satır her temizleme adımını listeler: önek kaldırıldı, kaçışlar geri alındı, dolgu eklendi, alan JSON'dan alındı. Bir sorun varsa hata mesajı tam olarak hangi karakterin hangi konumda olduğunu söyler.
Rozet, dosyanın sihirli baytlarından okunan türü gösterir. Dosya aslında PDF değilse, data URI türü yanlış bildiriyorsa ya da PDF %%EOF öncesinde kesilmişse sarı bir uyarı çıkar.
PDF'ler tarayıcının kendi görüntüleyicisinde açılır, görseller ve metin sayfada gösterilir. İsterseniz dosyayı yeniden adlandırıp İndir'e tıklayın. Ters yön için PDF / dosya → Base64 sekmesine geçip bir dosya bırakın.
data:application/pdf;base64, Base64'ün bir parçası değildir. Bırakılırsa ya hata fırlatır (: ve ; geçersizdir) ya da hoşgörülü çözücülerde ilk baytları bozar ve dosya artık %PDF- ile başlamaz.
base64.b64decode(value) # value = 'data:application/pdf;base64,JVBERi0…'
b64 = value.split(',', 1)[1] if value.startswith('data:') else value
pdf = base64.b64decode(b64) PDF ikili bir dosyadır. Çözülen baytları dizeye çevirip bu dizeyi bir metin kodlamasıyla yazmak geçersiz baytları değiştirir ve satır sonlarını bozar; bu da çapraz başvuru tablosunu kırar.
fs.writeFileSync('out.pdf', Buffer.from(b64, 'base64').toString()) fs.writeFileSync('out.pdf', Buffer.from(b64, 'base64')) Java'nın Base64.getDecoder() metodu satır sonlarını reddeder. E-postadan ya da Linux'taki base64 komutundan gelen Base64 76 karakterde bir satıra bölünür. MIME çözücüsünü kullanın ya da önce boşlukları temizleyin.
byte[] pdf = Base64.getDecoder().decode(wrapped); // IllegalArgumentException
byte[] pdf = Base64.getMimeDecoder().decode(wrapped);
JWT'ler ve pek çok URL parametresi + ve / yerine - ve _ kullanır ve = dolgusunu atar. Standart bir çözücü bunları reddeder ya da yanlış baytlar üretir.
base64.b64decode(token_part) # contains - and _
base64.urlsafe_b64decode(token_part + '=' * (-len(token_part) % 4))
Tarayıcıda atob, bayt başına bir karakter içeren ikili bir dize döndürür. Bunu new Blob([str]) içine vermek UTF-8 olarak kodlar ve 127'nin üzerindeki her bayt iki bayta dönüşür. Önce bir Uint8Array içine kopyalayın.
new Blob([atob(b64)], { type: 'application/pdf' }) const bytes = Uint8Array.from(atob(b64), c => c.charCodeAt(0));
new Blob([bytes], { type: 'application/pdf' }) PDF %%EOF ile biter. Base64 bir VARCHAR sütunu, log satırı sınırı ya da eksik kopyalama yüzünden kesildiyse dosya çözülür ama okuyucular hata gösterir ya da sayfalar eksik kalır. Uzunluğu gönderenin ürettiğiyle karşılaştırın.
SELECT LENGTH(pdf_b64) FROM docs; -- 65535: suspiciously round
ALTER TABLE docs MODIFY pdf_b64 LONGTEXT; -- or store the bytes in a BLOB
{"filename": …, "content": "<base64>"} bekler. Postman ya da cURL için test isteği hazırlamak üzere dosyayı burada kodlayın.%%EOF ise sütunun ya da log satırının fazla kısa kaldığını gösterir.+ / (standart, bölüm 4) ve - _ (URL ve dosya adı için güvenli, bölüm 5). URL-safe Base64 genellikle = dolgusunu atlar. Aynı dizede ikisinin birden bulunması, dizenin düzenlendiğini ya da birleştirildiğini gösterir.= dolgusu uzunluğu 4'ün katı yapar. Dolgu yoksa 2 ya da 3 kalanı geri kazanılabilir; 1 kalanı ise geçerli hiçbir Base64 için mümkün değildir — bir karakter kaybolmuş ya da eklenmiştir. Ortadaki = genellikle iki dizenin art arda eklendiği anlamına gelir.%PDF-, PNG için 89 50 4E 47, DOCX ve XLSX gibi ZIP tabanlı formatlar için 50 4B 03 04. Bu baytlar Base64'ün ilk karakterlerini sabitler; bu yüzden tür çözmeden önce okunabilir — araçtaki tabloya bakın.%%EOF ile biter. Bu işaret son 1.024 baytta yoksa dosya neredeyse kesinlikle kısa kesilmiştir. Başlık en fazla 1.024 bayt içeriden başlayabilir; çoğu okuyucu bu tür dosyaları yine de açtığı için durum bildirilir ama dosya reddedilmez.{"filename": "invoice.pdf", "mime": "application/pdf", "content": "…"}) ya da data URI kullanın ki alıcı tahmin etmek zorunda kalmasın.%PDF- ile başladığını doğrulayın. Tek satırlık bu kontrol yanlış alanları, çift kodlamayı ve Base64 olarak dönen hata sayfalarını yakalar.multipart/form-data ya da önceden imzalanmış bir indirme URL'si iki taraf için de daha hafiftir.BLOB/bytea sütunu üçte bir daha küçüktür ve bir VARCHAR gibi sessizce kesilemez. Base64'e yalnızca API sınırında kodlayın.data:application/pdf;base64, öneki, tırnaklar, satır sonları ve JSON kaçışları kalabilir — otomatik olarak kaldırılırlar. data: öneki verinin parçasıymış gibi çözülmüştür; baytlar ikili yerine metin olarak yazılmıştır; dize kesilmiştir (sonunda %%EOF yoktur); Base64 iki kez kodlanmıştır ya da dosya hiç PDF değildir — örneğin bir PNG ya da JSON hata mesajıdır. Aynı dizeyi buraya yapıştırın: bu durumların her biri için ayrı bir uyarı gösterilir. JVBERi0 PDF, iVBORw0KGgo PNG, /9j/ JPEG, R0lGOD GIF, UEsDB ZIP (dolayısıyla DOCX, XLSX, PPTX), H4sI gzip'tir. Araç çözülen verinin sihirli baytlarını okuyup türü gösterir ve dosyayı uygun uzantıyla kaydeder. data:application/pdf;base64,JVBERi0…. Tarayıcılar bunu bağlantı ya da src olarak doğrudan açabilir. API'ler genellikle yalnızca virgülden sonraki Base64 kısmını ister. %PDF- ile başlamıyor. Gösterilen tür, baytların gerçekte ne olduğudur. Sık karşılaşılan sürprizler: PNG ya da JPEG bir tarama, bir DOCX, birkaç PDF içeren bir ZIP ya da belgenin yerine Base64 ile kodlanmış bir JSON veya HTML hata mesajı. %%EOF işaretiyle biter. Bu işaret yoksa Base64 neredeyse kesinlikle kesilmiştir: yalnızca bir kısmı kopyalanmış, MySQL TEXT (65.535 bayt) gibi bir veritabanı sütunu tarafından kırpılmış ya da log satırı sınırı yüzünden kısalmıştır. Dizenin tamamını yeniden alın; çözme işlemi eksik veriyi geri getiremez. Kodlama ve Biçimlendirme
Tam ASCII tablosu: 128 karakterin ondalık, onaltılık, sekizlik ve ikilik karşılıkları, artı çift yönlü metin–ASCII dönüştürücü. Kontrol karakterleri kaçış dizileri, şapka gösterimi ve nerede karşınıza çıktıklarıyla birlikte.
Kodlama ve Biçimlendirme
EAN-13, UPC-A, Code 128, Code 39 ve 11 barkod türü daha üretin — SVG veya baskıya hazır PNG. 12 hane girin, kontrol basamağı otomatik tamamlansın; yanlışsa hangi hane olması gerektiğini söyleriz.
Kodlama ve Biçimlendirme
Base64'ü ücretsiz çevrimiçi kodlayın ve çözün. Tam UTF-8 ve emoji desteğiyle gerçek zamanlı dönüştürme. %100 tarayıcıda — kayıt gerekmez.
Kodlama ve Biçimlendirme
Bir Base64 dizesini ya da data URI'yi tarayıcınızda görsele geri çözün. Önizleyin, boyutları ve MIME'ı okuyun, ardından PNG, JPG, GIF, SVG olarak indirin. Yükleme yok.
Kodlama ve Biçimlendirme
CSV'yi tarayıcınızda JSON'a dönüştürün. RFC 4180, tür çıkarımı, başlık satırı, büyük tam sayı güvenli. %100 gizli, yükleme yok.
Kodlama ve Biçimlendirme
Bozuk karakterleri yapıştırın, özgün metni geri alın. UTF-8, GBK, Big5, Shift_JIS, EUC-KR ve Windows-1252 arasındaki her makul kodlama zinciri denenir, sıralanır ve zincir açıkça gösterilir. Ücretsiz, tarayıcınızda çalışır.