Skip to content

[BUG] - Support for non-latin characters does not work #48

@lincoln310

Description

@lincoln310

UE Version:
E.g. UE 5.2

Frontend Version:
E.g. UE5.4-0.0.4

Problem component
FrontEnd

E.g. Signalling Server, Frontend, Pixel Streaming C++ plugin

Description
I created a EditableText in UE5.2. When I input Chinese from pixelstreaming, it dose not fire a CompositionStart event.
I found a fix at here: EpicGames/PixelStreamingInfrastructure#452.
But it still dose not work.

Steps to Reproduce:

  1. create a EditableText in UE
  2. open pixelstreaming
  3. try to input some Chinese from frontEnd to the EditableText
  4. ascii code is send directly to ue, not Chinese

Expected behavior

  1. Chinese input can fire CompositionStart | Update | End.

Screenshots
If applicable, add screenshots to help explain your problem.
I added this code to player.html, then it act like this:

work

1 i select EditableText in UE
2 active the input.example bellow
3 then it works fine. The Chinese shown on both EditableText and input.example bellow

image

not work

4 when i click on the other place except input.example
5 then the actived EditableText does not fire Composition Event any more.

 <div class="control">
        <label for="example">
          First select textbox, then to open IME:
          <ul>
            <li>on macOS type <kbd>option</kbd> + <kbd>`</kbd></li>
            <li>on Windows type <kbd>windows</kbd> + <kbd>.</kbd></li>
          </ul>
        </label>
        <input type="text" id="example" name="example" />
      </div>
      
      <div class="event-log">
        <label for="eventLog">Event log:</label>
        <textarea
          readonly
          class="event-log-contents"
          rows="8"
          cols="25"
          id="eventLog"></textarea>
        <button class="clear-log">Clear</button>
      </div>

      <script>
        const inputElement = document.querySelector('input[type="text"]');
        const log = document.querySelector(".event-log-contents");
        const clearLog = document.querySelector(".clear-log");

        clearLog.addEventListener("click", () => {
        log.textContent = "";
        });

        function handleEvent(event) {
        log.textContent += `${event.type}: ${event.data}\n`;
        }

        document.addEventListener("compositionstart", handleEvent);
        document.addEventListener("compositionupdate", handleEvent);
        document.addEventListener("compositionend", handleEvent);
      </script>

Platform (please complete the following information):

  • OS: macOS
  • Browser + version: chrome 123.0.6312.59
  • Version [e.g. 22]

Additional context
Add any other context about the problem here.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions