The IETF has just published a new specification describing how to construct language tags. The new RFC 4646, which replaces RFC 3066, with the new IANA Language Subtag Registry address a number of long standing issues with language subtags.

This article has been completely rewritten to provide a gentle introduction to how to construct language tags following the new rules.

We have had over 220 feedback ratings on this article, including 23 comments. Based on this feedback, this document was reformatted and had some changes to content.

From the feedback responses it was very clear that non-developers coming across this page (and a few developers) were confused by it. Redirects and clarification about the content and intended audience have been added to address that.

The title was slightly changed from ‘The HTTP charset parameter’ to ‘Setting the HTTP charset parameter’, and there were some tweaks to the code samples.