問題タブ [utf-8]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
unicode - vbscriptファイルに2バイト文字を入力します
→(&rarr)をANSIVBScriptファイルに入力できる記号に変換する必要があります。正規表現を使用して、選択した一連のhtmlcodeを実際の2バイト記号に変換するスクリプトを作成しています。多くの言語は「\0x8594;」を使用してこれを実現します...VBScriptの同等のものは何ですか?
java - Java WebアプリケーションでUTF-8を動作させるには?
Java webapp (サーブレット + JSP、フレームワークを使用しない) で UTF-8 を動作させて、通常のフィンランド語テキストや特殊なケースのäöå
ようなキリル文字などをサポートする必要があります。ЦжФ
私のセットアップは次のとおりです。
- 開発環境:Windows XP
- 本番環境:Debian
使用データベース: MySQL 5.x
ユーザーは主に Firefox2 を使用していますが、サイトへのアクセスには Opera 9.x、FF3、IE7、Google Chrome も使用されています。
これを達成する方法は?
ruby - Ruby:潜在的にユニコードの文字列をバイトに分割する方法
ユーザー入力を受け取り、画面上にレンダリングするゲームを書いています。私がこれに使用しているエンジンは完全に Unicode に対応しているため、可能であればそれを維持したいと考えています。問題は、レンダリング ループが次のようになることです。
私は i18n についてよく知りませんが、上記のコードが機能するのは私と私の言語を話す人々だけであることは十分に知っています。私は次のようなものを好むだろう:
これはコアディストリビューションに存在しますか? 私はインストールに追加の要件を追加することには多少抵抗がありますが、それが唯一の方法である場合は、私は生きます.
さらに面白いことに、文字列が実際に Unicode 文字列であるかどうかを知る方法はありません。
編集:私が使用しているライブラリは実際に文字列全体をレンダリングできますが、ユーザーがその場で表示されるものを編集できるようにしています.「バックスペース」を押すと、基本的に、最後を切り落とすバイト数を知る必要があります.
c++ - TinyXML の UTF-8 サポートはどのように機能しますか?
TinyXMLを使用してXML ファイルを解析/構築しています。現在、ドキュメントによると、このライブラリは UTF-8 を介してマルチバイト文字セットをサポートしています。これまでのところとても良いと思います。ただし、ライブラリが提供する唯一の API (要素名、属性名、および値の取得/設定など、文字列が使用されるすべてのもの) はstd::string
or const char*
. これは、マルチバイト文字セットのサポートについての私自身の理解に疑問を投げかけています。8 ビット文字のみをサポートする文字列に 16 ビット文字を含めるにはどうすればよいでしょうか (「Unicode をサポートする」主張を否定するコード ページを使用しない限り)。理論的には 16 ビットのコード ポイントを取得して 2 文字に分割できることは理解していますが、それではstd::string
変換されません。std::string
「Unicode」文字列に変換すると、ほとんどの目的で無効になり、ファイルに書き込んで別のプログラムで読み込むと、誤って機能する可能性があります。
それで、誰かがライブラリが「8ビットインターフェース」(std::string
またはconst char*
)を提供し、「Unicode」文字列をサポートする方法を説明できますか?
(おそらく、ここで Unicode 用語をいくつか混同しました。そこから生じる混乱については申し訳ありません)。
c++ - STLでのUTF8からワイド文字への変換
プラットフォームに依存しない方法で、std::string の UTF8 文字列を std::wstring に、またはその逆に変換することは可能ですか? Windows アプリケーションでは、MultiByteToWideChar と WideCharToMultiByte を使用します。ただし、コードは複数の OS 用にコンパイルされており、標準の C++ ライブラリに限定されています。
encoding - ブラウザのファイル ダウンロード ボックスに非 ASCII ファイル名を表示するにはどうすればよいですか?
非ASCII形式でヘッダーパラメータを送信する方法は受け入れられていないようです。
通常、ファイル ダウンロードのヘッダーは次のようになります。
Content-disposition: 添付ファイル。ファイル名="theasciifilename.doc"
ファイル名パラメーターで utf8 でエンコードされた文字列を壊した場合を除いて、Firefox は問題なく処理しますが、IE はスローします。
ファイル名をエンコードする方法を説明するドキュメントが CodeProject にあります。
このドキュメントは、Bản Kiểm Kê.doc を、バイトを 16 進法でエンコードして B%e1%ba%a3n%20Ki%e1%bb%83m%20K%c3%aa.doc にエンコードします。
問題 #1: その文字列の最初の文字: ả の値は ả です -- その数値を 16 進数にエンコードすると、%a3%1e が得られます。この男はどのようにして %e1%ba%a3 を手に入れたのですか? (ここでは明らかに単純なものが欠けています)
問題 #2: IE はこのエンコーディングを認識しますが、Firefox は認識しません! 何をすべきか?
mysql - UTF-8 でエンコードされたダンプを MySQL にロードする
私は昨日、この問題について数時間耳を傾けてきました。
エンコードが「UTF-8 Unicode (utf8)」に設定された MySQL 4.1.22 サーバー上のデータベースがあります (phpMyAdmin によって報告されています)。このデータベースのテーブルのデフォルトの文字セットはlatin2に設定されています。しかし、それを使ったWebアプリケーション(PHPで書かれたCMS Made Simple)はutf8でページを表示する...
これがどのように台無しにされたとしても、実際には機能します。Web アプリは文字を正しく表示します (主にチェコ語とポーランド語が使用されます)。
「mysqldump -u xxx -p -h yyy dbname > dump.sql」を実行します。これにより、次のような SQL スクリプトが得られます。
- UTF-8で表示すると、任意のエディター (Notepad+ など) で完璧に見えます- すべての文字が正しく表示されます
- スクリプト内のすべてのテーブルでは、デフォルトの文字セットがlatin2に設定されています
- 「/*!40101 SET NAMES latin2 */;」があります。最初の行(他の設定の中で)
ここで、このデータベースを MySQL 5.0.67 で実行されている別のサーバーにエクスポートしたいと考えています。サーバーのエンコードは「UTF-8 Unicode (utf8)」に設定されています。CMS Made Simple インストール全体をコピーし、dump.sql スクリプトをコピーして、「mysql -h ddd -u zzz -p dbname < dump.sql」を実行しました。その後、CMSMS Web ページを表示するときにすべての文字がスクランブルされます。
設定してみました:
SET character_set_client = utf8;
SET character_set_connection = latin2;
そして、すべての組み合わせ (私には意味がなくても念のため): latin2/utf8、latin2/latin2、utf8/utf8 など - 役に立ちません。すべての文字はまだスクランブルされていますが、場合によっては別の方法で:)。
また、スクリプト内のすべての latin2 設定を utf8 に置き換えてみました (テーブルの名前とデフォルトの文字セットを設定します)。何もない。
このエンコーディング全体が実際にどのように機能するかをほんの数語で説明できる MySQL の専門家がここにいますか? 9.1.4を読みました。接続文字セットと照合順序を調べましたが、そこには何も役に立ちませんでした。
ありがとう、マット
java - アプリケーション内の 1 つのタペストリー 4 ページに ISO-8859-1 エンコーディングを設定するが、そうでなければ完全に UTF-8 である
ページを UTF-8 として提供する Tapestry アプリケーションがあります。つまり、サーバーの応答には次のヘッダーがあります。
このアプリケーション内には、ISO-8859-1 エンコーディングで提供する必要がある単一のページがあります。つまり、サーバーの応答には次のヘッダーが必要です。
これを行う方法?アプリケーション全体のデフォルトのエンコーディングを変更したくありません。
Google検索に基づいて、次のことを試しました:
ただし、@Meta アノテーションを使用してこれらの値を設定することも、getOutputEncoding メソッドをオーバーライドすることもできません。
Tapestry 4.0.2 を使用しています。
編集:私は、サブクラス化された HttpServletResposeWrapper を持つサーブレットフィルターでこれを行うことになりました。ラッパーは setContentType() をオーバーライドして、応答に必要なエンコードを強制します。
php - PHP で utf-8 文字列を utf-16 文字列に変換する方法
PHPでutf-8文字列をutf-16文字列に変換するにはどうすればよいですか?
php - PHP: UTF-8 文字列でウムラウトを最も近い 7 ビット ASCII に置き換えます
私がやりたいのは、文字列からすべてのアクセントとウムラウトを削除して、「lärm」を「larm」に、または「andré」を「andre」に変えることです。私がやろうとしたのは、文字列を utf8_decode してから strtr を使用することでしたが、ソース ファイルが UTF-8 ファイルとして保存されているため、すべてのウムラウトに ISO-8859-15 文字を入力できません。 UTF-8 文字。
明らかに、これに対する解決策は、ISO-8859-15 ファイルであるインクルードを含めることですが、別の必要なインクルードを含めるよりも良い方法があるに違いありません。
更新:たぶん、私がやろうとしていることは少し不正確でした: 実際にはウムラウトを削除したくはありませんが、それらを最も近い "1 文字の ASCII" に置き換えます。