"İ".toLowerCase() != "i" : <p>In Turkish, there's a letter <code>İ</code> which is the uppercase form of <code>i</code>. When I convert it to lowercase, I get a weird result. For example:</p>

<p><div class="snippet" data-lang="js" data-hide="false" data-console="true" data-babel="false">
<div class="snippet-code">
<pre class="snippet-code-js lang-js prettyprint-override"><code>var string_tr = "İ".toLowerCase();
var string_en = "i";

console.log( string_tr == string_en );  // false
console.log( string_tr.split("") );     // ["i", "̇"]
console.log( string_tr.charCodeAt(1) ); // 775
console.log( string_en.charCodeAt(0) ); // 105</code></pre>
</div>
</div>
</p>

<p><code>"İ".toLowerCase()</code> returns an extra character, and if I'm not mistaken, it's <a href="http://www.fileformat.info/info/unicode/char/0307/index.htm" rel="noreferrer">COMBINING DOT ABOVE (U+0307)</a>.</p>

<p>How do I get rid of this character?</p>

<p>I could just filter the string:</p>

<p><div class="snippet" data-lang="js" data-hide="false" data-console="true" data-babel="false">
<div class="snippet-code">
<pre class="snippet-code-js lang-js prettyprint-override"><code>var string_tr = "İ".toLowerCase();

string_tr = string_tr.split("").filter(function (item) {
    if (item.charCodeAt(0) != 775) {
        return true;
    }
}).join("");

console.log(string_tr.split(""));</code></pre>
</div>
</div>
</p>

<p>but am I handing this correctly? Is there a more preferable way? Furthermore, why does this extra character appear in the first place?</p>

<p>There's some inconsistency. For example, in Turkish, there a lowercase form of <code>I</code>: <code>ı</code>. How come the following comparison returns true</p>

<p><div class="snippet" data-lang="js" data-hide="false" data-console="true" data-babel="false">
<div class="snippet-code">
<pre class="snippet-code-js lang-js prettyprint-override"><code>console.log( "ı".toUpperCase() == "i".toUpperCase() ) // true</code></pre>
</div>
</div>
</p>

<p>while </p>

<p><div class="snippet" data-lang="js" data-hide="false" data-console="true" data-babel="false">
<div class="snippet-code">
<pre class="snippet-code-js lang-js prettyprint-override"><code>console.log( "İ".toLowerCase() == "i" ) // false</code></pre>
</div>
</div>
</p>

<p>returns false?</p>
