Skip to content

Instantly share code, notes, and snippets.

@jonasraoni
Created December 6, 2020 13:39
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jonasraoni/1ecddb10c7832129abf6d8ac0591e888 to your computer and use it in GitHub Desktop.
Save jonasraoni/1ecddb10c7832129abf6d8ac0591e888 to your computer and use it in GitHub Desktop.
Regular expression to find valid UTF-8 characters (useful for filtering bad input which might break some applications)
[\x00-\x7F] # ASCII
|[\xC2-\xDF][\x80-\xBF] # non-overlong 2-byte
|\xE0[\xA0-\xBF][\x80-\xBF] # excluding overlongs
|[\xE1-\xEC\xEE\xEF][\x80-\xBF]{2} # straight 3-byte
|\xED[\x80-\x9F][\x80-\xBF] # excluding surrogates
|\xF0[\x90-\xBF][\x80-\xBF]{2} # planes 1-3
|[\xF1-\xF3][\x80-\xBF]{3} # planes 4-15
|\xF4[\x80-\x8F][\x80-\xBF]{2} # plane 16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment