Node.js はクライアントリクエストデータ内の中国語文字化けの問題を解決します

Node.js はクライアントリクエストデータ内の中国語文字化けの問題を解決します

Node.js はクライアントリクエストデータ内の中国語文字化けの問題を解決します

コード例:

var http = require('http');
var server = http.createServer();
server.on('request',function(req,res){
    // res.end("hello world");
    res.end("Hello World");
});
server.listen(3000,function(){
    console.log("サーバーは実行中です");
});

ここに画像の説明を挿入

理由:

サーバー上でデフォルトで送信されるデータは、実際にはUFT8でエンコードされたコンテンツです。

しかし、ブラウザはUFT8でエンコードされたコンテンツであることを認識しません

ブラウザがサーバーの応答コンテンツのエンコーディングを認識していない場合、現在のオペレーティング システムのデフォルトのエンコーディングに従って実行します。

中国語のオペレーティングシステムのデフォルト設定はGBKです

解決策: 正しい方法は、送信するデータのタイプをブラウザに伝えることですres.setHeader('Content-Type','text/plain;charset=utf-8');コネクタを間違えないように注意し、utf-8 をランダムに記述しないでください。 http プロトコルでは、content-Type は相手に送信するデータのタイプを伝えるために使用され、その後すぐにタイプが書き込まれます。

var http = require('http');
var server = http.createServer();
server.on('request',function(req,res){
    // res.end("hello world");
    res.setHeader('Content-Type','text/plain;charset=utf-8');
    res.end("Hello World");
});
server.listen(3000,function(){
    console.log("サーバーは実行中です");
});

ここに画像の説明を挿入
種類がたくさんあることに注意してください

レスポンスコンテンツタイプ Content-Type

var http = require('http');
var server = http.createServer();
server.on('request',function(req,res){
    if(req.url==='/plain'){
        res.setHeader('Content-Type','text/plain;charset=utf-8');
        res.end("Hello World");
    }そうでない場合(req.url==='/html'){
        res.setHeader('Content-Type','text/html;charset=utf-8');
        res.end("<h1>Hello World<br/> hello world</h1>");
    }
   
});
server.listen(3000,function(){
    console.log("サーバーは実行中です");
});

異なるリクエストパスに応じて異なるタイプのContent-Type形式を返します。

ここに画像の説明を挿入

これで、クライアント要求データ内の中国語文字化けの問題を解決する node.js の方法についての記事は終わりです。より関連性の高い node クライアント要求データ文字化けコンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • Nodejs で実装されたシンプルな UDP ブロードキャスト サーバーとクライアント
  • ノードHTTPリクエストクライアントリクエストの詳細な説明
  • Node.js の http リクエスト クライアントの例 (リクエスト クライアント)
  • Node.jsソケットによって実装されたサーバーとクライアントの機能の例
  • NodeJSはクライアント側のjs暗号化を実装します
  • Nodejs TCP サーバーとクライアント チャット プログラムの詳細な説明
  • NodeJS http モジュールの使用例 [Web サーバー/クライアントの作成]
  • Node.jsはhttpモジュールを使用してサーバーとクライアントの完全な例を作成します。

<<:  Linux システム構成 (サービス制御) の詳細な紹介

>>:  コンテンツの位置をランダムにドラッグするHTMLを実装する2つの方法

推薦する

LeetCode の SQL 実装 (184. 部門内で最も高い給与)

[LeetCode] 184. 部門最高給与従業員テーブルにはすべての従業員が保存されます。すべて...

MySQL REVOKE でユーザー権限を削除する

MySQL では、REVOKE ステートメントを使用してユーザーの特定の権限を削除できます (ユーザ...

Linuxカーネルスケジューラソースコード初期化の分析

目次1. はじめに2. スケジューラの基本概念2.1. 実行キュー (rq) 2.2 スケジューリン...

MySQL データベースの 1045 エラーの解決方法

ローカル データベースがサーバー データベースに接続されているときに発生する 1045 の問題を解決...

iframe なしの div ネスト HTML

最近、宿題をしているときに、iframe を使用せずにページをネストする必要があったため、jquer...

Windows での MySQL スケジュールバックアップ スクリプトの実装

Windows サーバーでデータベース データを定期的にバックアップする場合は、Windows タス...

CSS属性のデフォルト値width: autoとwidth: 100%の違いの詳細な説明

幅: 自動子要素(コンテンツ+パディング+境界線+余白を含む)は、親要素のコンテンツ領域全体を埋めま...

MySQL における EXISTS と IN の使用法の比較

1. 使用法: (1)EXISTSの使用 ucsc_project_batch a から、存在する場...

MySQLのROUND関数の丸め演算における落とし穴の分析

この記事では、MySQL の ROUND 関数を使用した丸め操作の落とし穴を例を使って説明します。ご...

React の国際化 react-intl の使用

React で国際化を実現するにはどうすればよいでしょうか? react-intlプラグインは、Re...

nginx で同時接続リクエストの数を制限する方法

導入同時接続数を制限するモジュールは http_limit_conn_module です。アドレス:...

ネイティブ JavaScript メッセージボード

この記事では、参考までにメッセージボードを実装するためのJavaScriptの具体的なコードを紹介し...

nginx のインストールが完了した後に PHP を解析できない問題の解決方法

目次方法1方法2 nginxをインストールした後、PHPコードを解析できないことがわかりました。解決...

IE9 のネイティブ ページ互換性の問題に対する解決策についての簡単な説明

序文最近、クライアントのネイティブページを引き継ぎました。顧客は、ページが IE9 以降のバージョン...

バックエンドデータを取得するためのVue Elementフロントエンドアプリケーション開発

目次概要1. バックエンドデータの取得と処理2. インターフェース表示処理概要前回のエッセイ「ステッ...