Skip to content
This repository was archived by the owner on Aug 5, 2024. It is now read-only.
This repository was archived by the owner on Aug 5, 2024. It is now read-only.

Diff breaks unicode characters for emojis #59

Description

@orromis

I'm working message log in our app. We want to show diff of changes any user made on text posts. Those posts may include emoji characters but diff_match_patch replaces those characters with � character (but only if they changed in the text).

The behaviour can be reproduced here:
https://neil.fraser.name/software/diff_match_patch/demos/diff.html

Paste 😉and 😀into textareas and compute the diff.

Why is this happening?

Activity

  1. mcataford commented on Mar 6, 2019

    @mcataford

    Looks like the diffing doesn't consider whether a character is non-ASCII and breaks unicode emojis in pieces if they are different but occupy the same space. That would result in some unknown character � after all is said and done. Assuming it's conversion related.

    Looking into it out of curiosity.

  2. josephrocca commented on Aug 18, 2019

    @josephrocca
  3. ndvbd commented on May 24, 2021

    @ndvbd

    Any updates here?

  4. josephrocca commented on May 24, 2021

    @josephrocca

    @ndvbd I ended up "solving" it by just escaping all the special unicode stuff with text = encodeURI(text) before saving the text (and using decodeURI(...) to undo it, of course). Bit of a hack but it works for my use case.

  5. dmsnell commented on May 25, 2021

    @dmsnell

    Check out #80, as referenced above @ndvbd's comment. It should handle all the surrogate pairs properly.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions