diff --git a/spec/app_root_test.js b/spec/app_root_test.js
index dd6781a1f2400873bcfddb45d73abb02ddca2ffe..dcb671324980d8ef89294f32e33fb39c5b4f9547 100644
--- a/spec/app_root_test.js
+++ b/spec/app_root_test.js
@@ -51,7 +51,7 @@ describe('With different app root', function () {
   it('serves files defined in manifest.json file', async function () {
     const response = await app.inject({ url: '/appsuite/example.js' })
     expect(response.statusCode).to.equal(200)
-    expect(response.headers['content-type']).to.equal('application/javascript')
+    expect(response.headers['content-type']).to.equal('application/javascript; charset=utf-8')
     expect(response.body).to.equal('this is example')
 
     const response2 = await app.inject({ url: '/appsuite/test.txt' })
diff --git a/spec/file_caching_test.js b/spec/file_caching_test.js
index 7579aee6e5031b65eacfbf073f841226fd7468e3..8c50df879b3e73e321b08426e68faddc6284daa8 100644
--- a/spec/file_caching_test.js
+++ b/spec/file_caching_test.js
@@ -66,7 +66,7 @@ describe('File caching service', function () {
   it('serves files defined in manifest.json file', async function () {
     const response = await app.inject({ url: '/example.js' })
     expect(response.statusCode).to.equal(200)
-    expect(response.headers['content-type']).to.equal('application/javascript')
+    expect(response.headers['content-type']).to.equal('application/javascript; charset=utf-8')
     expect(response.body).to.equal('this is example')
     // expect(response.headers['content-security-policy']).to.contain('sha256-NzZhMTE2Njc2YTgyNTZmZTdlZGVjZDU3YTNmYzRjNmM1OWZkMTI2NjRkYzZmMWM3YTkwMGU3ZTdhNDlhZmVlMwo=')
     const response2 = await app.inject({ url: '/test.txt' })
@@ -113,7 +113,7 @@ describe('File caching service', function () {
       'http://ui-server': {
         '/manifest.json': generateSimpleViteManifest({}),
         '/example.js': spy = sandbox.spy(() => {
-          return new Response('this is example', { headers: { 'content-type': 'application/javascript' } })
+          return new Response('this is example', { headers: { 'content-type': 'application/javascript; charset=utf-8' } })
         })
       }
     })
@@ -134,7 +134,7 @@ describe('File caching service', function () {
       'http://ui-server': {
         '/manifest.json': generateSimpleViteManifest({}),
         '/example.js': spy = sandbox.spy(() => {
-          return new Response('this is example', { headers: { 'content-type': 'application/javascript' } })
+          return new Response('this is example', { headers: { 'content-type': 'application/javascript; charset=utf-8' } })
         })
       }
     })
diff --git a/src/files.js b/src/files.js
index 5d852c474a25901a46ce368cbc588682fb4151ad..0daca8be7bf6fea3d8617d5587860fdbf6410080 100644
--- a/src/files.js
+++ b/src/files.js
@@ -38,7 +38,7 @@ export async function fetchFileWithHeadersFromBaseUrl ({ path, baseUrl, version
   const result = {
     body: Buffer.from(await response.arrayBuffer()),
     headers: {
-      'content-type': response.headers.get('content-type'),
+      'content-type': response.headers.get('content-type') === 'application/javascript' ? 'application/javascript; charset=utf-8' : response.headers.get('content-type'),
       dependencies
     }
   }