問題タブ [string-conversion]
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.
php - PHPで文字列をUTF-8に変換する最良の方法は何ですか?
PHPを使用して文字列をUTF-8に変換する最良の方法は何でしょうか。
以下はページ上で問題ないように見えますが、MySQLでは一部の文字が文字化けしているように見えます。
- MYSQL:
UPGRADE EVENT – New Mazda2 from £124.99 per month. Representative 0% APR over 3 years. Min 50% deposit required. Call xxxxxxxxxxxx for test drive, info or Ts&Cs.
- ページ上:
UPGRADE EVENT - New Mazda2 from £124.99 per month. Representative 0% APR over 3 years. Min 50% deposit required. Call xxxxxxxxxxxx for test drive, info or Ts&Cs.
iconv、mb_string、html_entity_decode、htmlentities、mb_convert_encodingなどを見てきました。
データベースの照合はutf8_unicode_ciであり、テーブルの文字セットはutf8です。
javascript - JavaScript 文字列変数を小数/金額に変換する
JavaScript 文字列変数を 10 進数に変換するにはどうすればよいですか?
次のような機能はありますか。
c# - WP7:テキストボックスのグループをテキストから数値または10進値に変換する最も簡単な方法は何ですか?
そのため、ユーザーが複数のテキストボックスに数値を入力しているので、それらがnullでないことを確認し、10進数に変換する必要があります。テキストボックスごとに個別のIFを使用するよりも、これを行う簡単な方法はありますか?
最初のテキストボックスの後に「and」を付けてみましたが、気に入らなかったようです。
php - 文字列が16進数で、接頭辞が「0x」の場合、文字列を整数に変換する際の不整合
PHP5.3.5を使用します。これが他のバージョンでどのように機能するかわからない。
数字を保持する文字列を使用することについて混乱しています。たとえば、'0x4B0'
または'1.2e3'
。PHPがそのような文字列を処理する方法は、私には一貫していないようです。私だけですか?それともバグですか?または文書化されていない機能?それとも、ドキュメントに魔法の文章が欠けているだけですか?
どちらの場合も、をis_numeric()
返しますtrue
。また、どちらの場合も、$str * 1
文字列を解析して有効な数値を返します(ある場合は整数、別の場合は浮動小数点数)。
でキャストする(int)$str
と(float)$str
、予期しない結果が得られます。
(int)$str
いずれの場合も、数字の前にオプションの「+」または「-」を付けて、数字のみを解析できます。(float)$str
より高度で^[+-]?\d*(\.\d*)?(e[+-]?\d*)?
、たとえば、オプションの「+」または「-」、オプションの数字、オプションの数字を含むオプションの小数点、オプションの「+」を含む「e」で構成されるオプションの指数などを解析できます。 「-」の後にオプションの数字が続きます。ただし、16進データでは失敗します。
関連ドキュメント:
- is_numeric() -「16進表記(0xFF)も許可されますが、符号、小数、および指数部分がない場合のみ」と記述されています。文字列が数値データを保持しているかどうかをテストすることを目的とした関数がtrueを返す場合、PHPはそのような文字列を数値に変換できると期待しています。これはで機能するようです
$str * 1
が、キャストでは機能しません。なんで? - 整数への変換-「演算子、関数、または制御構造が整数引数を必要とする場合、値は自動的に変換されるため、ほとんどの場合、キャストは必要ありません」と述べています。
$s * 10
そのようなステートメントの後、私はと(int)$s * 10
式の両方が同じように機能し、同じ結果を返すことを期待しています。ただし、例に示すように、これらの式の評価は異なります。 - 文字列の数値への変換-「有効な数値データはオプションの符号であり、その後に1つ以上の数字(オプションで小数点を含む)が続き、その後にオプションの指数が続く」と記載されています。「指数」は「e」または「E」の後に数字が続きます。たとえば、
1.2e3
有効な数値データです。記号(「+」または「-」)は記載されていません。16進値については言及されていません。これは、で使用される「数値データ」の定義と競合しますis_numeric()
。次に、「この変換の詳細については、strtod(3)のUnixマニュアルページを参照してください」という提案があり、man strtod
追加の数値(HEX表記を含む)について説明しています。それで、これを読んだ後、16進データは有効または無効な数値データであると思われますか?
それで...
is_numeric()
文字列が数値として使用される場合、PHPが文字列を処理する方法との間に何らかの関係がありますか(または、むしろあるべきです) ?- なぜ
(int)$s
、(float)$s
そして$s * 1
異なる働きをするのか、すなわち。$s
is0x4B0
または1.2e3
?の場合、まったく異なる結果が得られます。 0x4B0
文字列がとしてまたはとして記述されている場合、文字列を数値に変換してその値を保持する方法はあります1.2e3
か?floatval()
HEXでまったく機能しない、HEXで機能するように設定するintval()
必要があり、型キャストする必要があり、機能する場合もあれば機能しない場合もあるため、これらは有効なオプションではありません。変換というよりはデータ操作のように見えるので、私も考慮していません。私はネイティブソリューションを探しているので、この場合、自己作成関数も考慮されません。$base
16
(int)$str
(float)$str
$n *= 1;
java - 文字列から日付まで; 入力の形式が異なります
現在取り組んでいるプロジェクトでは、StringをDateに変換する必要があります。残念ながら、日付と時刻は、変換する必要があるすべての文字列で同じ形式ではありません。現在の値では、2011-06-25T22:44:12または2011-06-25 22:49:01のようなものがよく見られます(T? に注意してください)。
SimpleDateFormatを使用して文字列を日付に変換する方法は知っていますが、入力の形式がわからないため、これは正しいアプローチではないようです。複数の「フォーマット」をDateFormatオブジェクトに追加する方法があるかどうか、またはフォーマットを自動検出できるDateFormatクラスがあるかどうか疑問に思っていましたか?
私が考えていたもう1つのアプローチは、文字列でif/elseステートメントと正規表現を使用して、使用されている形式を特定し、それに一致するSimpleDateFormatクラスを使用することですが、もっと簡単な方法があるはずです. 助言がありますか?
nstextview - cocoaでNSTextView RTFDデータをプレーンテキストに変換する方法
次のような書式設定されたテキストと埋め込み画像を含む NSTextView が1つあります。
上記を次のようなプレーンテキストに変換したい:
ありがとう
vb.net - 文字列をバイト配列にコピーする方法
テキスト行で満たされた StringArray があり、文字列の各配列を取得してバイトに変換する必要があります。どのように
文字列配列の 1 つの要素を取得して Byte に変換できるようになったら、文字列配列内の位置ごとにループを配置しますが、文字列形式が byte.parser に対して正しくないと表示されます。
php - JSON以外のメソッドを使用して配列を文字列に変換する方法は?
JSONを使用する以外に、配列を文字列に変換するために使用されるPHPの関数は何ですか?
JSONのように直接行う関数があることは知っています。私は覚えていません。
c# - C# マネージ コードと c++ アンマネージ コード間の文字列の混合プログラミング
文字列パスを使用して XML ファイルを呼び出す C++ プロジェクトに取り組んでいます。C++ をコンパイルすると、すべてが完全に機能し、プロジェクトで必要な XML ファイルを使用できるようになりました。
C# GUI を使用する必要があったため、C++ ファイルからすべての関数を呼び出すラッパーを作成しました。両方のプラットフォーム間でデバッグした後に 1 つの問題が発生します。c# は、ファイルを呼び出すための文字列パスを認識しません。指定されたパスが見つからないというエラーが表示されます。両方のプラットフォーム間で有効な文字列パスを送信する方法を知っている人はいますか?
前もってありがとう、カロライナ
C++ クラスの Wrapper.h
ラッパー.cpp
UI.cs
UI.cs では、C++ が使用する文字列型のため、関数 NewReadfile をラッパーから呼び出すことができません。これを解決する方法はありますか?
c# - C#「文字列として」はこのように機能する必要がありますか?
文字列がオブジェクト配列を扱うときに問題を引き起こしたので。実行後の値はコメントに示されています。このように機能する必要がありますか?