Img src sorunu Avrupa işaretler

4 Cevap php

Geçenlerde web sitemde garip bir sorunla karşılaştı. AE ile Görüntüler O ve onlara (Batı Avrupa işaretler) å görüntüler olmayacak.

The character encoding on all sites is "Iso-8859-1" I can print æ ø and å on the page without problems. If I right click the "broken image" and choose properties, it displays the filename with the european signs. (/admin/content/galleri/å.jpg)

img için kod bu gibi görünüyor

<img name='bilde'
     src='content/{$_SESSION["linkname"]}/{$row["img"]}'
     class='topmargin_ss leftmargin_ms rightmargin_s'
     width='80' height='80'>

(Kod parantez başlangıç ​​ve bitiş olmadan yani görüntüleri yayınlamak için izin verilmez miydi)

Made 4 files: z.jpg æ.jpg ø.jpg å.jpg

Only z.jpg shows up, they are the exact same jpg. The images are uploaded using php code, which works, uploads to the right directory and has no problem with the european signs.

Herkes bu neden ne olabilir biliyor mu?

4 Cevap

This htmlentities('string', ENT_QUOTES, "UTF-8") works for me. For you that might be

$img = "<img name='bilde'
     src='" . htmlentities("content/{$_SESSION['linkname']}/{$row['img']}", ENT_QUOTES, "UTF-8") . "' class='topmargin_ss leftmargin_ms rightmargin_s' width='80' height='80'>

Sen URL'ye utf8_decode($string) uygulamak gerekebilir, ama yapmam gereken asla "UTF-8" ile htmlentitiesi kullanırken.

NOTE : This assumes that the page is already utf-8 encoded. This can be done using header('Content-Type: text/html; charset=utf-8');. And the data in the db is saved as utf-8. This can be done by calling mysql_set_charset('utf8'); before you start making MySQL queries; the query "SET NAMES 'utf8'" does the same.

Muhtemelen (ISO-8859-1 == Latin1 olarak) web sayfası arasında bir uyumsuzluk var ve dosya sistemi görüntüleri resimler - muhtemelen UTF-8 olduğunu.

Ben öneririm:

a) UTF-8 web sayfaları Encode - Daha yerlerde çalışmak daha muhtemeldir.

b) Sadece bu sorunları önlemek için dosya için ASCII kullanır.

Xx, bir bayt onaltılık değerini temsil nereye %xx ile URL kodlamak gerekir. Lütfen webserver satıcı şartname gibi, bu çoğunlukla UTF-8 vardır.

The same encoding method may be used for encoding characters whose use, although technically allowed in a URL, would be unwise due to problems of corruption by imperfect gateways or misrepresentation due to the use of variant character sets, or which would simply be awkward in a given environment.

Özel sembol UTF-8 ve URL tercüme alacak wether Bu, tarayıcı bağımlı bulunuyor. Aslında kimse, dosya adları ASCII sadece küçük bir alt kümesini özel semboller kullanır çünkü, (bu işler olur başka) değil sanırım.

Bakabilirsiniz bin2hex - o çılgın umlotts% yaş kodlamak gerekir