我有一个包含几个泰语字符的字符串。此字符串使用 unicode 字符。但是我在 IDE 中看不到泰语字符,即使我在文本文件中写了字符串。如果我想正确地看到泰文字符,我必须编写以下代码
var text = "M_M-150 150CC. เดี่ยว (2 For 18 Save 2)";
var ascii = Encoding.Default.GetBytes(text);
text = Encoding.UTF8.GetString(ascii);
Run Code Online (Sandbox Code Playgroud)
应用上述逻辑后,我可以正确地看到带有泰语字符的字符串。这是输出
// notice the thai character ?????? in the string
M_M-150 150CC. ?????? (2 For 18 Save 2)
我不确定为什么我需要应用上述逻辑来查看泰语字符,即使字符串是 Unicode?在这种情况下,Encoding.Default 到底在做什么?
这是我的 unicode 字符串,它是我使用 API 从 jquery 中的 DB 中获取的
\ud83d\ude02\u263a\ufe0f\u263a\ufe0f\ud83d\ude0a\ud83d\ude09\ud83d\ude0f\ud83d\ude01\ud83d\ude18\ud83d\ude14\ud83d\ude18\ud83d\ude01\ud83d\ude02\ud83d\ude04\ud83e\udd23\ud83d\ude02\u263a\ufe0f\ud83d\ude0f\ud83d\ude0f
Run Code Online (Sandbox Code Playgroud)
我想将它显示为表情符号字符。如果我在脚本中明确写入这个字符串,那么它会显示表情符号,但是当我从数据库中获取它并从响应中显示它时,我从 API 得到它显示为纯字符串。
$.each(response.data,function(key,value){
const str = value.comment_text.replace(/\\\\/g,"\\");
html += '<div class="comment-block" id="cmnt' + value.comment_id + '">\
<div class="content-box">\
<p class="text long-string "><a href="javascript:void(0)" class="blue-text bold-font">' + value.first_name + ' ' + value.last_name.substr(0,1).toUpperCase() + ' </a> #post test #post1 #post3 hvh\ud83d\ude0f "' + str + '"</p>\
</div>\
</div>';
});
Run Code Online (Sandbox Code Playgroud)
这是我在 js 中的代码
\\\\ud83d\\\\ude02\\\\u263a\\\\ufe0f\\\\u263a\\\\ufe0f\\\\ud83d\\\\ude0a\\\\ud83d\\\\ude09\\\\ud83d\\\\ude0f\\\\ud83d\\\\ude01\\\\ud83d\\\\ude18\\\\ud83d\\\\ude14\\\\ud83d\\\\ude18\\\\ud83d\\\\ude01\\\\ud83d\\\\ude02\\\\ud83d\\\\ude04\\\\ud83e\\\\udd23\\\\ud83d\\\\ude02\\\\u263a\\\\ufe0f\\\\ud83d\\\\ude0f\\\\ud83d\\\\ude0f
Run Code Online (Sandbox Code Playgroud)
数据库中的字符串
您可以在SQL Server的结果集中显示特殊的Unicode字符吗?
例如,我如何显示这些字符????