質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

2回答

764閲覧

実体参照になっている文字を絵文字にする方法

mei1216

総合スコア28

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

0クリップ

投稿2020/09/11 02:54

編集2020/09/11 03:45

apiで取得した絵文字が実体参照文字になってしまう(例:ëはëになる)ため、その文字実態参照を絵文字にする方法はありませんかね?
apiは他社のもので自分では更新できません。

JavaScriptでfetchする際に実体参照文字になるみたいでして、そちらの解決方法もあれば教えて頂けると幸いです。
fetchのコードは以下になります。

fetch("url",{ mode: 'cors', headers: { Authorization: '...'} }).then(function(response1) { return response1.json(); }).then(function(data1) { alert(data1["text"]); }).catch(function(err1) { alert(err1); });

>>追記
先方によるとコンソールからcurlコマンドで叩いた際は{"status":200,"runtimeDLs":{"text":"ëëë"}ときちんとした絵文字で返ってくるようです。
fetch後alertした際にëëëと実体参照文字になってしまいます。
テストで絵文字をjsに直接入れてHTMLにDOMで挿入した際はきちんと絵文字が表示されました。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

miyabi_takatsuk

2020/09/11 02:59

そのDBへインサートしているのは質問者さんがコントロールできる、ないし社内の物ですか? それとも、他社のものですか? また、JavaScriptでフェッチとは、どうやって行なっていますか? そのフェッチしているスクリプトも提示してください。
mei1216

2020/09/11 03:08 編集

それが他社のものなのでコントロールできないのですよね... fetchは以下の通りです。 fetch("url,{mode: 'cors',headers: { Authorization: '~~~~~'}}) .then(function(response1) { return response1.json(); }).then(function(data1) { alert(data1["text"]); }).catch(function(err1) { alert(err1); });
miyabi_takatsuk

2020/09/11 03:09

その構文と、他社のAPIであることを、 質問本文に記載してください。 ソースコードは、 コードブロックをお使い下さい。 ```ここに言語を入力 コード ``` という形式です。 質問本文は編集できます。
mei1216

2020/09/11 03:23

失礼しました。追記しました。
miyabi_takatsuk

2020/09/11 03:42 編集

ありがとうございます。 またまた質問になって恐縮なのですが、 alertで表示した際に、実態参照文字がそのまま表示されてしまう、ということでしょうか? それとも、HTMLにDOMに挿入した際、ブラウザ表示上でも、実態参照文字になってしまうのでしょうか?
miyabi_takatsuk

2020/09/11 03:49 編集

質問修正ありがとうございます。 回答の通り、alertでは、 実態参照文字を、特殊文字として出力はできません。
guest

回答2

0

ベストアンサー

alertメソッドでは、実態参照文字はそのまま出力されてしまいます。
innerHTMLプロパティに代入など、
HTMLの要素として出力すれば、
ブラウザのWebページ表示上では、
絵文字(特殊文字)として表示されます。

投稿2020/09/11 03:45

編集2020/09/11 03:47
miyabi_takatsuk

総合スコア9555

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

mei1216

2020/09/11 05:25

おっしゃる通り、innerHTMLを使用したら絵文字が使えるようになりました。 ご丁寧にありがとうございました。
guest

0

API側の問題だと思いますが、API側はいじれない前提でしょうか?
ëを元の文字に戻すには対比表をつくるのが妥当です

投稿2020/09/11 04:04

yambejp

総合スコア116724

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yambejp

2020/09/11 05:02

対比表 var list={ "á":"%c3%a1","Á":"%c3%81","é":"%c3%a9","É":"%c3%89","í":"%c3%ad", "Í":"%c3%8d","ó":"%c3%b3","Ó":"%c3%93","ú":"%c3%ba","Ú":"%c3%9a", "à":"%c3%a0","À":"%c3%80","è":"%c3%a8","È":"%c3%88","ì":"%c3%ac", "Ì":"%c3%8c","ò":"%c3%b2","ò":"%c3%92","ù":"%c3%b9","Ù":"%c3%99", "â":"%c3%a2","Â":"%c3%82","ê":"%c3%aa","Ê":"%c3%8a","î":"%c3%ae", "Î":"%c3%8e","ô":"%c3%b4","Ô":"%c3%94","û":"%c3%bb","Û":"%c3%9b", "ä":"%c3%a4","Ä":"%c3%84","ë":"%c3%ab","Ë":"%c3%8b","ï":"%c3%af", "Ï":"%c3%8f","ö":"%c3%b6","Ö":"%c3%96","ü":"%c3%bc","Ü":"%c3%9c", "ÿ":"%c3%bf","Ÿ":"%c5%b8","æ":"%c3%a6","Æ":"%c3%86","œ":"%c5%93", "Œ":"%c5%92","ß":"%c3%9f","ç":"%c3%a7","Ç":"%c3%87", };
yambejp

2020/09/11 05:02

var str="testëëëtest"; var str=str.replace(/&.+?;/g,x=>{ var y=Object.entries(list).filter(z=>z[0]==x); return y.length?decodeURIComponent(y[0][1]):x; }); console.log(str);
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問