JSFiddle - React, Tailwind, and code Playground

HTML

<script src="https://raw.github.com/walling/unorm/master/src/unorm.js"></script>
<script src="https://raw.github.com/walling/unorm/master/src/unormdata.js"></script>

CSS

body{
    padding: 25px;
    padding-top: 0px;
    font-family: sans-serif;
    font-size: 10pt;
}

h1,h2{
    font-size: 12pt;
    font-weight: bold;
    margin-top: 25px;
    margin-bottom: 3px;
}

h2{
    font-weight: normal;
    margin-top: 10px;
}

JavaScript

// This comes from event.dataTransfer.files[0].name
var filenameFromJS = "Designhåndbog.pdf";

// This comes from the server when the file transfer is complete
var filenameFromServer = "Designhåndbog.pdf";


function print(str){ $('body').append(str + "<br />"); }
function printhl(str){ $('body').append("<h1>" + str + "</h1>"); }
function printhl2(str){ $('body').append("<h2>" + str + "</h2>"); }

printhl('Not normalized');

printhl2("String compare with ==");
print(filenameFromJS == filenameFromServer); // I need this to return true

printhl2("Raw - length");
print(filenameFromJS + " (string length: " + filenameFromJS.length + ")");
print(filenameFromServer + " (string length: " + filenameFromServer.length + ")");

printhl2("Escaped using escape()");
print(escape(filenameFromJS));
print(escape(filenameFromServer));

// The different types of normalization http://en.wikipedia.org/wiki/Unicode_equivalence#Normal_forms

// NFD
printhl('NFD normalized');

var filenameFromJSNFD = UNorm.nfd(filenameFromJS);
var filenameFromServerNFD = UNorm.nfd(filenameFromServer);

printhl2("String compare with ==");
print(filenameFromJSNFD == filenameFromServerNFD);

printhl2("Raw - length");
print(filenameFromJSNFD + " (string length: " + filenameFromJSNFD.length + ")");
print(filenameFromServerNFD + " (string length: " + filenameFromServerNFD.length + ")");

printhl2("Escaped using escape()");
print(escape(filenameFromJSNFD));
print(escape(filenameFromServerNFD));

// NFC
printhl('NFC normalized');

var filenameFromJSNFC = UNorm.nfc(filenameFromJS);
var filenameFromServerNFC = UNorm.nfc(filenameFromServer);

printhl2("String compare with ==");
print(filenameFromJSNFC == filenameFromServerNFC);

printhl2("Raw - length");
print(filenameFromJSNFC + " (string length: " + filenameFromJSNFC.length + ")");
print(filenameFromServerNFC + " (string length: " + filenameFromServerNFC.length + ")");

printhl2("Escaped using...