Firefox not displaying ® correctly on specific website
For some reason Firefox is not showing the registered trademark ® correctly on my website. It is coded correctly and shows as ® when i perform my HTML editing. But when I look at it as a customer using Firefox it changes to Ž but only in certain parts of the webpage. It does display properly on all other browsers though (Chrome, Edge, Opera, Safari, Explorer) Firefox seems to be the only browser not displaying it properly. See screen shots below I used Opera as an example. I'm not sure if this is a Firefox problem or something that I can fix. Any help would be greatly appreciated. Thank you
Измењено
Изабрано решење
cor-el said
There are three cases on this webpage where that '®' (0xae;) character is present in the page source. There are two 'LEGO®' cases in the sidebar at the left apart from the one in the screenshot. This is a problem with the server that doesn't seem to specify the encoding and this makes Firefox guess the encoding as "ISO-8859-2" as is shown in "Page Info -> General". In this encoding 0xAE is represented as 'Ž' (0x017d) and Firefox changes the '®' accordingly. When the page loads then there is a short flash where I see the '®' and then Firefox changes it to 'Ž'. You will have to make the server send the file as Unicode (utf-8) to make this work properly.Web console: The character encoding of the document was not declared, and the encoding was guessable from content only late. This caused the document to be reloaded. The character encoding needs to be declared in the Content-Type HTTP header, using a meta tag, or using a byte order mark.
- content-type: text/html => content-type: text/html; charset=UTF-8
Thank you by adding that code to the header my problem has been fixed.
Прочитајте овај одговор са објашњењем 👍 0Сви одговори (3)
There are three cases on this webpage where that '®' (0xae;) character is present in the page source. There are two 'LEGO®' cases in the sidebar at the left apart from the one in the screenshot.
This is a problem with the server that doesn't seem to specify the encoding and this makes Firefox guess the encoding as "ISO-8859-2" as is shown in "Page Info -> General". In this encoding 0xAE is represented as 'Ž' (0x017d) and Firefox changes the '®' accordingly. When the page loads then there is a short flash where I see the '®' and then Firefox changes it to 'Ž'. You will have to make the server send the file as Unicode (utf-8) to make this work properly.
- content-type: text/html => content-type: text/html; charset=UTF-8
Web console: The character encoding of the document was not declared, and the encoding was guessable from content only late. This caused the document to be reloaded. The character encoding needs to be declared in the Content-Type HTTP header, using a meta tag, or using a byte order mark.
Измењено
The short answer is that the server doesn't send the text encoding (should be utf-8) and that Firefox tries to be smart and guess the encoding (for some reason thinks it is ISO-8859-2) when it encounters the '®' (0xae;) and changes the 0xae; for this encoding to 'Ž' (0x017d).
Одабрано решење
cor-el said
There are three cases on this webpage where that '®' (0xae;) character is present in the page source. There are two 'LEGO®' cases in the sidebar at the left apart from the one in the screenshot. This is a problem with the server that doesn't seem to specify the encoding and this makes Firefox guess the encoding as "ISO-8859-2" as is shown in "Page Info -> General". In this encoding 0xAE is represented as 'Ž' (0x017d) and Firefox changes the '®' accordingly. When the page loads then there is a short flash where I see the '®' and then Firefox changes it to 'Ž'. You will have to make the server send the file as Unicode (utf-8) to make this work properly.Web console: The character encoding of the document was not declared, and the encoding was guessable from content only late. This caused the document to be reloaded. The character encoding needs to be declared in the Content-Type HTTP header, using a meta tag, or using a byte order mark.
- content-type: text/html => content-type: text/html; charset=UTF-8
Thank you by adding that code to the header my problem has been fixed.