They're
HTML entities. Which means that a browser understands them when it's displaying the page. But Java and Javascript have no idea what they mean. So any Javascript-based search routine will find an entry like
België only if the person doing the searching also enters the HTML entity, rather than entering
België.
Further, HTML entities don't work in a URL. There, a different encoding scheme is needed, something that jAlbum takes care of for you. But if there are HTML entities in a string that is subsequently used to create a URL, that encoding will fail, because the encoder will encode the ampsersand and the semicolon. That will yield a very different string than would be the case if the encoder is presented with an actual e-umlaut.
There is generally little need to use HTML entities these days, with some exceptions. First, there are things like a non-breaking space,
, which has no true character equivalent. It's also necessary to use an HTML entity to "escape" a character like
<, which a browser would assume is the beginning of an HTML tag.
It's safer to use an HTML entity for an ampersand, just to avoid the possibility that the ampersand will be seen by the browser as being the beginning of an entity.
Don't even get me started on single- and double-quotes, however. That's a can of worms because of nesting problems. A quick illustration.... Let's say you're trying to use an entered comment as the
alt attribute on an image. This would be OK:
alt="Here's a quote"
But this would be invalid HTML:
alt='Here's a quote'
This is the kind of stuff that makes skin developers crazy.