On newer Apache versions, the default character set is UTF-8. The web server expects your file and the characters in the file to be in that format. If they are not, you need to set a different character set, e.g. in the "Apache & Nginx Settings". For example, if you want the webserver to interpret the file content as ISO-8859-1 (probably not suited for your needs, just an example), you'd need to set
AddDefaultCharset ISO-8859-1
in the additional HTTP and HTTPS settings fields of Apache
charset iso-8859-1;
in the additional settings of Nginx and
default_charset = "iso-8859-1"
in the additional PHP settings.
As we don't know what format your file has and how the special characters are encoded in the file itself, you probably need to play around a bit with the settings. Likely all is UTF-8 or UTF-16 (or should be).
In your HTML file you need a line
<meta charset="your character encoding"/>
for example
<meta charset="iso-8859-1"/>
in the <head>...</head> section, too.
And it is a good idea to save the file itself in the desired character encoding. That is an "invisible" thing. Youc an find more information on this with the "file" command manual in Linux and display the encoding with
# file -i <filename>
The trick is to bring all settings into sync, then the content of your file will be correctly displayed. iso-8859-1 in this post is an example only. I am not familiar with Arabic, so I cannot really say whether UTF-8 would be the right format for that or maybe UTF-16 or other character sets.