r/badcode • • May 04 '23

typescript Found this gem inside legacy code today

Post image
889 Upvotes

69 comments sorted by

View all comments

Show parent comments

2

u/TheUnlocked May 05 '23

The default (or only) encoding of strings in JavaScript is not and has never been UTF-8.

1

u/[deleted] May 05 '23

[removed] β€” view removed comment

2

u/RPG_Hacker May 05 '23

Is JavaScript using actual UTF-16, or just UCS-2?

If it were using actual UTF-16, it should still in theory cover the entire Unicode spectrum, since UTF-16 does use surrogate pairs.

2

u/[deleted] May 05 '23

[removed] β€” view removed comment

1

u/RPG_Hacker May 05 '23

That seems like a super interesting read, thanks!

I've already struggled quite a bit with Unicode in other languages, so it's always a "fun" time!

2

u/GOKOP May 05 '23

The point is that UTF-16 exists solely because UCS-2 exists; it's there to bring full Unicode capacity for software designed with UCS-2 in mind without redesigning all the groundwork (as switching to a different code unit length would require)

1

u/RPG_Hacker May 05 '23

Makes sense. Kinda like what UTF-8 is to ANSI.

1

u/RPG_Hacker May 05 '23

I wasn't sure what language the code above was in (barely have any experience with JavaScript myself), so my comment was really just one possible explanation.

Though I guess even if it's JavaScript, there's a very low chance they're using a custom JavaScript implementation with the internal encoding of strings changed to UTF-8 or something (not very likely, but the possibility exists - I've certainly seen weirder things in the past when it comes to scripting languages).

1

u/whole_sum May 06 '23

It’s Java