原因:Safari浏览器默认不是utf-8的编码(好像是GB2312?)
解决方案:在response的header中指定UTF-8编码格式(charset=utf-8)
from fastapi.responses import JSONResponse @app.get('/query') async def query_qg(q:str): return JSONResponse(run_query(q),headers={'content-type': 'application/json;charset=utf-8'})
修改前:
{'status': 'success', 'data': [{'question': '姣忓綋鍙戠敓绌洪毦浜嬫晠锛屼负浜嗘煡鎵句簨鏁呯殑鍘熷洜璋冩煡浜哄憳鎬绘槸浼氬崈鏂圭櫨璁″湴瀵绘壘椋炴満涓婄殑鈥滈粦鍖e瓙鈥濄€傚畠鏄\ue219竴涓\ue04e紙 锛夌殑鐩掑瓙锛屽\ue63b褰㈠儚涓€涓\ue047糠浣犻泦瑁呯\ue188锛屽叾灏哄\ue1ed鍥犻\ue5e3鏈轰笉鍚岃€屾湁鎵€涓嶅悓銆�', 'answer': 'B銆佹\ue7f6绾㈣壊'}, {'question': '澶у\ue18d閮界煡閬擄紝涓€寮犵焊鏈変袱涓\ue048潰--姝i潰鍜屽弽闈€€備絾鏄\ue224紝濡傛灉鏈変汉璇磋兘缁欎綘鐪嬩竴绉嶅彧鏈変竴闈㈢殑绾革紝浣犺\ue74e寰楄繖鏄\ue21c湡鐨勫悧?绛�:锛� 锛夈€�', 'answer': 'B銆佹槸鐪熺殑'}, {'question': '绔嬪嵆琛屽姩锛圙ofor it锛夋椂濡傛灉琛屼笉閫氭椂锛屼綘搴旇\ue1da锛氾紙 锛�', 'answer': 'A.鐩镐俊浠讳綍琛屼负閮芥湁绉\ue21b瀬鎰忎箟'}, {'question': '褰撲綘鍦ㄧ綉涓婄湅鍒颁竴鍒欐嫑鑱樼綉缁滃吋鑱岀殑淇℃伅锛岀О鍦ㄧ數鍟嗗钩鍙扮粰鍟嗗\ue18d鈥滃埛淇¤獕鈥濓紝鏃犻渶鎶奸噾锛岄潪甯歌交鏉撅紝姣忓埛涓€绗斿晢鍝佹敹鍏�15鍏冿紝姣忓ぉ鏀跺叆鑷冲皯鐧惧厓浠ヤ笂锛屾\ue11c纭\ue1be殑搴斿\ue1ee鏂规硶鏄\ue224紙 锛夈€�', 'answer': 'D銆佽\ue17b娓呭0绉扳€滃埛淇¤獕鈥濆彲浠ヨ禋閽辩殑鍏艰亴鍧囨槸璇堥獥锛屽簲鍙婃椂涓炬姤'}, {'question': '濡傛灉浣犳帴鍒拌嚜绉版槸绀句繚灞€宸ヤ綔浜哄憳鎵撴潵鐨勭數璇濓紝璇寸ぞ淇濆崱鏈夐棶棰橈紝骞朵笖瀵规柟鑳藉噯纭\ue1bf\ue1e9鍑轰綘鐨勫\ue758鍚嶃€佸嚭鐢熷勾鏈堢瓑璇︾粏淇℃伅锛岃\ue6e6姹傜即绾充繚璇侀噾锛屾\ue11c纭\ue1be殑搴斿\ue1ee鏂规硶鏄\ue224紙 锛夈€�', 'answer': 'B銆佸\ue1ee浜庨檶鐢熷彿鐮佷竴寰嬩笉杞\ue103处鍜屼笉鍛婄煡涓\ue043汉闅愮\ue746'}, {'question': '濡傛灉浣犳帴鍒拌嚜绉版煇鐢靛晢骞冲彴瀹㈡湇鎵撴潵鐨勭數璇濓紝瀵规柟璇翠綘浠ュ墠娉ㄥ唽浜嗙綉缁滆捶娆句俊鎭\ue224紝鐜伴渶瑕佹敞閿€锛屽惁鍒欏皢褰卞搷寰佷俊锛屽\ue1ee鏂硅\ue6e6姹傛坊鍔燪Q濂藉弸锛屾寚瀵间綘杩涜\ue511娉ㄩ攢鎿嶄綔锛屾\ue11c纭\ue1be殑鍋氭硶鏄\ue224紙 锛夈€�', 'answer': 'D銆佹寕鎺夊\ue1ee鏂圭數璇濓紝鎷ㄦ墦110鎴栬緰鍖烘淳鍑烘墍鐢佃瘽鎶ヨ\ue11f'}, {'question': '鎴樻枟鍦ㄧ櫧灞遍粦姘翠箣闂寸殑涓滃寳鎶楄仈濂宠嫳闆勫湪缁欏効瀛愮殑閬椾功閲岃\ue1e9锛氣€滄瘝浜插\ue1ee浜庝綘娌℃湁鑳藉敖鍒版暀鑲茬殑璐d换锛屽疄鍦ㄦ槸鍢村垇鐨勪簨鎯呪€︹€﹀湪浣犻暱澶ф垚浜轰箣鍚庯紝甯屾湜涓嶈\ue6e6蹇樿\ue187浣犵殑姣嶄翰鏄\ue219负鍥借€岀壓鐗茬殑锛佲€濊繖浣嶅コ鑻遍泟鏄\ue21d皝锛燂紙 锛�', 'answer': 'C.璧典竴鏇�'}, {'question': '1079銆�2019骞�1鏈�25鏃ワ紝涔犺繎骞虫€讳功璁板湪涓\ue15e叡涓\ue15eぎ鏀挎不灞€绗\ue100崄浜屾\ue0bc闆嗕綋瀛︿範鏃跺己璋冿紝鍏ㄥ獟浣撲笉鏂\ue15e彂灞曪紝鍑虹幇浜嗗叏绋嬪獟浣撱€佸叏鎭\ue21a獟浣撱€佸叏鍛樺獟浣撱€佸叏鏁堝獟浣擄紝淇℃伅鏃犲\ue629涓嶅湪銆佹棤鎵€涓嶅強銆佹棤浜轰笉鐢ㄣ€傚叾涓\ue168紝銆� 銆戞剰鍛崇潃浠庘€滄垜璇翠綘鍚\ue0fd€濈殑涓€瀵瑰\ue63f浼犳挱锛屽彉鎴愪簡澶氬\ue1ee澶氫紶鎾�,浜掑姩鎬т篃澶уぇ澧炲己銆�', 'answer': 'C.鍏ㄥ憳'}, {'question': '978銆佷綘鐨勯摱琛岃处鎴蜂俊鎭\ue219笉鑳藉悜浠栦汉閫忛湶鐨勬槸____銆�', 'answer': 'D銆佷互涓婇兘鏄�'}, {'question': '521銆佸ぇ瀹剁煡閬擄紝涓€寮犵焊鏈変袱涓\ue048潰鈥旀\ue11c闈㈠拰鍙嶉潰銆備絾鏄\ue224紝濡傛灉鏈変汉璇磋兘缁欎綘鐪嬩竴绉嶅彧鏈変竴闈㈢殑绾革紝浣犺\ue74e寰楄繖鏄\ue21c湡鐨勫悧锛熺瓟锛歘___銆�', 'answer': 'A銆佹槸鐪熺殑'}, {'question': '149銆佹湁涓€浣嶅攼浠h瘲浜哄湪瀵硅春鐭ョ珷璇佃\ue1f0銆婁箤鏍栨洸銆嬫椂锛岃\ue766璐虹煡绔犵О璧為亾鈥滀綘鑾\ue0a1笉鏄\ue21aぉ涓婁笅鍑$殑浠欎汉鍚э紝涓嶇劧鎬庝箞鑳藉啓鍑鸿繖涔堟劅浜虹殑璇楀憿锛熲€濊繖浣嶈\ue766绉颁箣涓衡€滆蔼浠欎汉鈥濈殑璇椾汉鏄痏___銆�', 'answer': 'C銆佹潕鐧�'}], 'total': 11}
修改后:
{'status': 'success', 'data': [{'question': '每当发生空难事故,为了查找事故的原因调查人员总是会千方百计地寻找飞机上的“黑匣子”。它是一个( )的盒子,外形像一个迷你集装箱,其尺寸因飞机不同而有所不同。', 'answer': 'B、橙红色'}, {'question': '大家都知道,一张纸有两个面--正面和反面。但是,如果有人说能给你看一种只有一面的纸,你觉得这是真的吗?答:( )。', 'answer': 'B、是真的'}, {'question': '立即行动(Gofor it)时如果行不通时,你应该:( )', 'answer': 'A.相信任何行为都有积极意义'}, {'question': '当你在网上看到一则招聘网络兼职的信息,称在电商平台给商家“刷信誉”,无需押金,非常轻松,每刷一笔商品收入15元,每天收入至少百元以上,正确的应对方法是( )。', 'answer': 'D、认清声称“刷信誉”可以赚钱的兼职均是诈骗,应及时举报'}, {'question': '如果你接到自称是社保局工作人员打来的电话,说社保卡有问题,并且对方能准确说出你的姓名、出生年月等详细信息,要求缴纳保证金,正确的应对方法是( )。', 'answer': 'B、对于陌生号码一律不转账和不告知个人隐私'}, {'question': '如果你接到自称某电商平台客服打来的电话,对方说你以前注册了网络贷款信息,现需要注销,否则将影响征信,对方要求添加QQ好友,指导你进行注销操作,正确的做法是( )。', 'answer': 'D、挂掉对方电话,拨打110或辖区派出所电话报警'}, {'question': '战斗在白山黑水之间的东北抗联女英雄在给儿子的遗书里说:“母亲对于你没有能尽到教育的责任,实在是嘴刁的事情……在你长大成人之后,希望不要忘记你的母亲是为国而牺牲的!”这位女英雄是谁?( )', 'answer': 'C.赵一曼'}, {'question': '1079、2019年1月25日,习近平总书记在中共中央政治局第十二次集体学习时强调,全媒体不断发展,出现了全程媒体、全息媒体、全员媒体、全效媒体,信息无处不在、无所不及、无人不用。其中,【 】意味着从“我说你听”的一对多传播,变成了多对多传播,互动性也大大增强。', 'answer': 'C.全员'}, {'question': '978、你的银行账户信息不能向他人透露的是____。', 'answer': 'D、以上都是'}, {'question': '521、大家知道,一张纸有两个面—正面和反面。但是,如果有人说能给你看一种只有一面的纸,你觉得这是真的吗?答:____。', 'answer': 'A、是真的'}, {'question': '149、有一位唐代诗人在对贺知章诵读《乌栖曲》时,被贺知章称赞道“你莫不是天上下凡的仙人吧,不然怎么能写出这么感人的诗呢?”这位被称之为“谪仙人”的诗人是____。', 'answer': 'C、李白'}], 'total': 11}
Comments | NOTHING