Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
465 views
in Technique[技术] by (71.8m points)

fabricjs - Fabric JS Unicode Issue

We are using Fabric JS (4.1.0) and noticed that special characters like ! or @ are not pulling through to the text object in the canvas. They are simply showing as space characters but normal alphabet characters come through as expected.

I've collated the below script to grab the unicode of a string and return it back as a unicode string. Running the function below returns the exact unicode data we expect however, when passing the variable of the unicode string to it, the u2702 text simply shows, however if I pass the same value in "hardcoded" like the commented out part it renders as expected.

Why is this happening and how can we fix it?

function unicodeEscape(str) {
    return str.replace(/[sS]/g, function(character) {
        var escape = character.charCodeAt().toString(16),
            longhand = escape.length > 2;

     longhand = true;


        return '\' + (longhand ? 'u' : 'x') + ('0000' + escape).slice(longhand ? -4 : -2);
    });
 }


canvas.clear();
var encodedVal = unicodeEscape('?');
console.log(encodedVal);
text = new fabric.Text(encodedVal);
canvas.add(text);

//    Function call that works perfectly and renders the element:
// text = new fabric.Text("u2702");
// canvas.add(text);
question from:https://stackoverflow.com/questions/65945453/fabric-js-unicode-issue

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)
Waitting for answers

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...