html富文本转json,PHP html富文本转Json错误

在将包含HTML富文本的数据转换为JSON时遇到问题,由于富文本中的双引号和图片导致格式错误。为解决此问题,采用Base64编码富文本内容,确保JSON格式正确。在前端解析时,使用Base64解码库来还原内容。该方法有效避免了富文本中特殊字符引发的JSON错误。
摘要由CSDN通过智能技术生成

背景

商城的详情页面使用百度的富文本,存储在mysql中。

前端使用vue,所以在去取出来和其他数据一起转为json数据返回给前端的时候发生错误,json格式错误。打印发现是富文本里面有图片或者说是有 “” 双引号的原因,在网上找了一些方法说需要转义再存。后来觉得这种方法不是很适合,所以换了一种方法,使用 Base64 的方式

8928bc9062c4

转为json

转为json前先把富文本的内容base64转化一下,这样json格式就不会出错

在前端页面解析base64

先引用base64加密解密文件

/*

* [hi-base64]{@link https://github.com/emn178/hi-base64}

*

* @version 0.2.1

* @author Chen, Yi-Cyuan [emn178@gmail.com]

* @copyright Chen, Yi-Cyuan 2014-2017

* @license MIT

*/

/*jslint bitwise: true */

(function () {

'use strict';

var root = typeof window === 'object' ? window : {};

var NODE_JS = !root.HI_BASE64_NO_NODE_JS && typeof process === 'object' && process.versions && process.versions.node;

if (NODE_JS) {

root = global;

}

var COMMON_JS = !root.HI_BASE64_NO_COMMON_JS && typeof module === 'object' && module.exports;

var AMD = typeof define === 'function' && define.amd;

var BASE64_ENCODE_CHAR = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'.split('');

var BASE64_DECODE_CHAR = {

'A': 0, 'B': 1, 'C': 2, 'D': 3, 'E': 4, 'F': 5, 'G': 6, 'H': 7, 'I': 8,

'J': 9, 'K': 10, 'L': 11, 'M': 12, 'N': 13, 'O': 14, 'P': 15, 'Q': 16,

'R': 17, 'S': 18, 'T': 19, 'U': 20, 'V': 21, 'W': 22, 'X': 23, 'Y': 24,

'Z': 25, 'a': 26, 'b': 27, 'c': 28, 'd': 29, 'e': 30, 'f': 31, 'g': 32,

'h': 33, 'i': 34, 'j': 35, 'k': 36, 'l': 37, 'm': 38, 'n': 39, 'o': 40,

'p': 41, 'q': 42, 'r': 43, 's': 44, 't': 45, 'u': 46, 'v': 47, 'w': 48,

'x': 49, 'y': 50, 'z': 51, '0': 52, '1': 53, '2': 54, '3': 55, '4': 56,

'5': 57, '6': 58, '7': 59, '8': 60, '9': 61, '+': 62, '/': 63, '-': 62,

'_': 63

};

var utf8ToBytes = function (str) {

var bytes = [];

for (var i = 0; i < str.length; i++) {

var c = str.charCodeAt(i);

if (c < 0x80) {

bytes[bytes.length] = c;

} else if (c < 0x800) {

bytes[bytes.length] = 0xc0 | (c >> 6);

bytes[bytes.length] = 0x80 | (c & 0x3f);

} else if (c < 0xd800 || c >= 0xe000) {

bytes[bytes.length] = 0xe0 | (c >> 12);

bytes[bytes.length] = 0x80 | ((c >> 6) & 0x3f);

bytes[bytes.length] = 0x80 | (c & 0x3f);

} else {

c = 0x10000 + (((c & 0x3ff) << 10) | (str.charCodeAt(++i) & 0x3ff));

bytes[bytes.length] = 0xf0 | (c >> 18);

bytes[bytes.length] = 0x80 | ((c >> 12) & 0x3f);

bytes[by

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
文本内容JSON解析错误可能是由于以下几个原因导致的: 1. JSON格式错误文本内容可能包含了JSON格式错误的部分,例如缺少引号、括号不匹配等。在解析JSON时,解析器无法正确识别这些错误的格式,导致解析错误。 2. 编码问题:文本内容中可能包含了非法的编码字符,例如特殊字符、无效的Unicode字符等。解析器在解析JSON时无法识别这些非法字符,导致解析错误。 3. 数据结构错误文本内容在JSON中的数据结构可能与解析代码的预期不一致,导致解析错误。例如,解析代码期望某个字段是数组,但文本内容中对应的字段却是字符串。 为了解决文本内容JSON解析错误,可以采取以下方法: 1. 检查JSON格式:使用JSON验证工具,检查文本内容中是否存在格式错误的部分,修复错误的格式。 2. 检查编码问题:检查文本内容中的编码字符,确保其符合JSON规范。如果存在非法字符,可以尝试将其义或删除。 3. 检查数据结构:检查文本内容中的数据结构,并与解析代码的预期进行对比。如果存在不一致的地方,可以调整解析代码或修改文本内容的数据结构,使其一致。 总结起来,文本内容JSON解析错误可能是由于JSON格式错误、编码问题或数据结构错误导致的。通过检查JSON格式、编码字符和数据结构,可以解决这些错误

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值