activescott / serverless-aws-static-file-handler

Easily serve static files with the Serverless Framework on AWS Lambda.
MIT License
52 stars 14 forks source link

Unicode support #206

Open tomchiverton opened 1 year ago

tomchiverton commented 1 year ago

Expected behavior:

Can place UTF8 characters such as ⏲️ in a .html file and they render as-is after output

Actual behavior:

⏲️

Steps to reproduce the problem:

import StaticFileHandler from 'serverless-aws-static-file-handler';

import { dirname,join as pathjoin} from 'path';
import { fileURLToPath } from 'url';

const __dirname = dirname(fileURLToPath(import.meta.url));

const clientFilesPath = pathjoin(__dirname,"./public/")
const fileHandler = new StaticFileHandler(clientFilesPath);

export async function importTest(event,context){
    return fileHandler.get(event, context);
}

where public/index.html is as above

Environment:

serverless-aws-static-file-handler 4.0.2 node 18.12.1, framework 3.25.1 (local) 3.25.1v (global), plugin 6.2.2, SDK 4.3.2 Ubuntu 22.04 LTS

tomchiverton commented 11 months ago

This also effects serving generated .js files that might contain the real unicode version instead of —

activescott commented 11 months ago

Thanks for reporting. This is probably because readFile needs to be passed a utf8 encoding at https://github.com/activescott/serverless-aws-static-file-handler/blob/cc2cdf1dc172e76b52b9cb366cfa95719fde298b/src/StaticFileHandler.js#L165

Needs a test too. I'm busy this week but maybe can take a look next week if someone else doesn't first.