# 【bubble】Unicode文字の変換

**URL:** <https://www.nocode-faq.com/t/topic/3231>\
**Category:** bubble\
**Tags:** バックエンドwork\
**Created:** [2022 年 10 月 25 日午前 3:42 UTC](https://www.nocode-faq.com/t/topic/3231 "2022-10-25T03:42:21Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![MuraTatsu](https://sea2.discourse-cdn.com/flex020/user_avatar/www.nocode-faq.com/muratatsu/32/1813_2.png) [@MuraTatsu](https://www.nocode-faq.com/u/MuraTatsu)\
**Post date:** [2022 年 10 月 25 日午前 3:42 UTC](https://www.nocode-faq.com/t/topic/3231/1 "2022-10-25T03:42:21Z")

</div>

はじめまして、MuraTatsuと申します。

表題の件でちょっと沼にはまっておりまして、どなた様かおわかりになられるようでしたらお助け頂きたくトピックあげさせて頂きました。

**やりたいこと**

- スマレジという外部のウェブサービスが提供するAPIの送信機能を使って送られたデータを、bubbleで作ったアプリケーション内で保存したいのですが、送ってくるデータがUnicodeであるためそれをアンエスケープして読める文字列にしたものを保存したいと思っています。

↓受け取るデータはこんな感じです↓

 ![screenshot 2022-10-25 12.18.02](https://us1.discourse-cdn.com/flex020/uploads/ncc_forum/original/2X/a/a697be5d78e74410b57abc1d8b535ef5e9753419.png)

**現在の状態・発生している問題**

- ワークフローの中で、受け取ったデータから保存したい値の部分を切り出して、Server scripアクションの中にネットに見つけた変換コードを貼り付けて動かしてみました。

 ![screenshot 2022-10-25 12.17.14](https://us1.discourse-cdn.com/flex020/uploads/ncc_forum/original/2X/b/b4cfcc8217dc7b26d6b17bf043b8fc4d96dacece.png)

変換しようとする元データが

- 「全角文字だけ」

- 「全角文字＋半角カナだけ」

- 「半角英数だけ」  
で構成されている文字列の時はうまく変換出来ていますが、

- 「全角文字と半角英数」が混じった文字列  
を変換させると、全角文字だけを結果として返してきます（例："2023年モデル"という文字列は"年モデル"にされてしまう）。

 ![screenshot_2022-10-25_12_25_13](https://us1.discourse-cdn.com/flex020/uploads/ncc_forum/original/2X/5/58728529b8f3fe06fa030fb3fafc4db8523c9153.png)

**実現したいこと**

前述の例で言えば、受け取った文字列

- 2023\u5e74\u30e2\u30c7\u30eb

を変換して

- 2023年モデル

という文字列で保存したいと思っておりますが、正規表現の指定の仕方が悪いのかそこにたどり着けません。server scriptアクションに貼り付けたソースは以下の通りです。

-----8\<-----(ここから)-----8\<-----

var unicodeUnescape = function(str) {  
var result = ‘’, strs = str.match(/\u.{4}/ig);

```
if (!strs) return '';

for (var i = 0, len = strs.length; i < len; i++) {
	result += String.fromCharCode(strs[i].replace('\\u', '0x'));
}

return result;

```

};

var result = unicodeUnescape(data);  
result;

-----8\<-----(ここまで)-----8\<-----

ここをこう変えれば望んでいる変換結果を得られるよ！というのがおわかりになられる方いらっしゃいましたら、教えて頂けますでしょうか？どうぞよろしくお願い致します。

---

<div class="post-metadata">

**Author:** ![sukesan](https://avatars.discourse-cdn.com/v4/letter/s/3d9bf3/32.png) [@sukesan](https://www.nocode-faq.com/u/sukesan)\
**Post date:** [2022 年 10 月 25 日午前 4:29 UTC](https://www.nocode-faq.com/t/topic/3231/2 "2022-10-25T04:29:07Z")

</div>

bubble の server script を書いたことがないので、こんな感じで行けるのでは？という回答になりますが、Node script のところに以下だけを書けば行けそうな気がします。

```auto
decodeURIComponent(str)

```

だめだったらごめんなさいm(\_ \_)m

---

<div class="post-metadata">

**Author:** ![MuraTatsu](https://sea2.discourse-cdn.com/flex020/user_avatar/www.nocode-faq.com/muratatsu/32/1813_2.png) [@MuraTatsu](https://www.nocode-faq.com/u/MuraTatsu)\
**Post date:** [2022 年 10 月 25 日午前 5:31 UTC](https://www.nocode-faq.com/t/topic/3231/3 "2022-10-25T05:31:14Z")

</div>

ご返信ありがとうございます！  
早速やってみました。  
が、残念ながら状況変わらず・・・、でした。  
もう少し色々トライしてみます。  
また何かアイデアあればお聞かせ頂けると嬉しいです〜。

---

<div class="post-metadata">

**Author:** ![sukesan](https://avatars.discourse-cdn.com/v4/letter/s/3d9bf3/32.png) [@sukesan](https://www.nocode-faq.com/u/sukesan)\
**Post date:** [2022 年 10 月 25 日午前 6:50 UTC](https://www.nocode-faq.com/t/topic/3231/4 "2022-10-25T06:50:52Z")

</div>

状況変わらずというと、エラーになったりはしなかったけど、「2023年モデル」にならず、「年モデル」になってしまったということでしょうか？

このコードは、`\u + 4文字` の部分しか変換されないコードになってまして、`str.match(/\\u.{4}/ig)`の時点で、「2023」という文字列は切り捨てられてます…

で、少しToolbox の使い方を調べてみました。

```auto
var result = decodeURIComponent(data);
result;

```

既にやられてるかもしれませんが、このように書かれてもうまく行かないでしょうか？

---

<div class="post-metadata">

**Author:** ![MuraTatsu](https://sea2.discourse-cdn.com/flex020/user_avatar/www.nocode-faq.com/muratatsu/32/1813_2.png) [@MuraTatsu](https://www.nocode-faq.com/u/MuraTatsu)\
**Post date:** [2022 年 10 月 25 日午前 7:27 UTC](https://www.nocode-faq.com/t/topic/3231/5 "2022-10-25T07:27:36Z")

</div>

ご教授いただいたものに張り替えて、  
 ![screenshot 2022-10-25 16.25.06](https://us1.discourse-cdn.com/flex020/uploads/ncc_forum/original/2X/f/f74909e782a3864b76e795204fb3e340728b42e9.png)

動かしてみましたら、

 ![screenshot 2022-10-25 16.24.36](https://us1.discourse-cdn.com/flex020/uploads/ncc_forum/original/2X/c/ca9e9ddf6e26de26fd251b84258211048bea57f8.png)

今回は変換せず・・・、でございました 🥲。

---

<div class="post-metadata">

**Author:** ![sukesan](https://avatars.discourse-cdn.com/v4/letter/s/3d9bf3/32.png) [@sukesan](https://www.nocode-faq.com/u/sukesan)\
**Post date:** [2022 年 10 月 25 日午前 8:07 UTC](https://www.nocode-faq.com/t/topic/3231/6 "2022-10-25T08:07:44Z")

</div>

decodeURIComponent(JSON.parse(`"${data}"`));

これでいけました！へっぽこエンジニアでした。笑

---

<div class="post-metadata">

**Author:** ![MuraTatsu](https://sea2.discourse-cdn.com/flex020/user_avatar/www.nocode-faq.com/muratatsu/32/1813_2.png) [@MuraTatsu](https://www.nocode-faq.com/u/MuraTatsu)\
**Post date:** [2022 年 10 月 25 日午前 8:33 UTC](https://www.nocode-faq.com/t/topic/3231/7 "2022-10-25T08:33:42Z")

</div>

本当に何度もすみません・・・ 💦

ご教授頂いた内容でこんなふうに設定して、  
 ![screenshot 2022-10-25 17.30.07](https://us1.discourse-cdn.com/flex020/uploads/ncc_forum/original/2X/5/5b0708d6dad338b1076f2c82a4a795527d0ff009.png)

動かしてみたら、これまでと違うエラーがスマレジから送られて来ました 🥲

 ![screenshot_2022-10-25_17_27_28](https://us1.discourse-cdn.com/flex020/uploads/ncc_forum/original/2X/6/68713f11953ba764b6edd56ce58c200813e6fdc1.png)

bubble側で何か書き足してあげる必要はありますでしょうか？  
何から何までお尋ねしてしまい恐縮です m(\_ \_)m

---

<div class="post-metadata">

**Author:** ![sukesan](https://avatars.discourse-cdn.com/v4/letter/s/3d9bf3/32.png) [@sukesan](https://www.nocode-faq.com/u/sukesan)\
**Post date:** [2022 年 10 月 25 日午前 9:01 UTC](https://www.nocode-faq.com/t/topic/3231/8 "2022-10-25T09:01:43Z")

</div>

すみません、少し自分のコードがおかしいとこがありました。ダブルクオートの両側に バッククォートが必要でした。

```auto
decodeURIComponent(JSON.parse(`"${data}"`));

```

そして、`result;` はもう必要ないです。

 ![スクリーンショット 2022-10-25 17.07.00](https://us1.discourse-cdn.com/flex020/uploads/ncc_forum/original/2X/e/ecf28e36c08de1e6ac12714d03b623014cf0fc8c.png)

---

<div class="post-metadata">

**Author:** ![MuraTatsu](https://sea2.discourse-cdn.com/flex020/user_avatar/www.nocode-faq.com/muratatsu/32/1813_2.png) [@MuraTatsu](https://www.nocode-faq.com/u/MuraTatsu)\
**Post date:** [2022 年 10 月 25 日午前 11:10 UTC](https://www.nocode-faq.com/t/topic/3231/9 "2022-10-25T11:10:40Z")

</div>

すごい！！！  
出来ました！

 ![screenshot_2022-10-25_20_07_43](https://us1.discourse-cdn.com/flex020/uploads/ncc_forum/original/2X/9/93c6ce04c4d268da5b5781a6dc06c19ad0a8c179.png)

ほかにも色々な文字の組み合わせで試してみましたが、全て成功しました。  
本当に本当にありがとうございました！
