Different types of files use different ways to define encoding. PhpStorm recognizes encoding of files based on their contents.
Encoding has influence on the way PhpStorm reads or writes files. If a file has been modified but not yet saved, any changes in encoding affect file writing; if a file has not been modified, then reading is affected. PhpStorm suggests specific ways to change encoding of a file according to its type, using File Encodings settings page, the Status bar, or the editor.
|Encoding||Can be changed in|
|File encoding is specified within the file, for example, in XML.||If a file contains explicit encoding declaration, you can change it in the Editor. In this case PhpStorm provides code completion.|
|File encoding is defined by BOM.||In this case, you can't change encoding with which PhpStorm reads the file, but it is still possible to change encoding for writing such file.|
|UTF characters are detected in the file contents.||PhpStorm provides an option that automatically changes file encoding to UTF,
if the file contents can be reasonably interpreted as UTF.
This option only works for reading; a file can be saved with any encoding.
|Encoding cannot be found out from the file content.||In this case, the default encoding is the one defined by the IDE encoding in the File Encodings page of the Settings dialog. You can change it for multiple files and directories, or for a single file.|
Encoding applies to directories and individual files. So doing, the encoding information contained in a file overrides the default encoding; encoding of a file or subdirectory overrides that on the higher levels.