問題タブ [nsstringencoding]

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.

0 投票する
1 に答える
61 参照

objective-c - 正規表現で NSString の部分文字列を見つける

NSRegularExpression を使用して NSString から部分文字列を取得しようとしています。一致の数や文字列を置き換える必要はありません。正規表現に一致する文字列が必要です

私が探しているのは:

私はできるだけ NSRange/NSMakeRange を使わないようにしています。誰か助けてくれませんか?

0 投票する
1 に答える
186 参照

ios - iOS はエンコードできない文字を除外します

こんにちは、私は iOS アプリケーションを開発しており、次の質問に直面しています。

NSString繁体字中国語、簡体字中国語、およびおそらく「®」などの特殊文字を含む があります 。

NSStringこれをNSData使用 するように変換したいとき

返される値は nil で、NSDataエンコードできない無効な文字を削除したいと考えています。

これどうやってするの?ありがとう!!

0 投票する
3 に答える
4943 参照

ios - NSURL URLWithString が nil を返す

私はa を渡しているNSURLクラスの非常に明白なメソッドで立ち往生しており、それを作成しているときに返されます。ブラウザで同じ文字列を使用するときはいつでも、正常に動作しています。次の方法を使用してに変換しています:URLWithStringstringURLnilstringNSStringNSURL

また、次を使用して最初に文字列をエンコードしようとしました

%10 becomes the suffix of my url with around 100+ repetition. %10この問題を克服するために何ができるか、または何ができるかを知っている人がいる場合。

ここに私のurlString
コメントは文字が多すぎると言っていますが、文字が少ないことは明らかです

0 投票する
1 に答える
182 参照

objective-c - NSString がコンテンツをエスケープしないようにする

初歩的な質問かもしれませんがすみません。

さまざまな理由で、次のような奇妙な文字列に悩まされています。

忍者のように二重の \\ を削除して、文字列が Uniencoded であり、このように読み取られる必要があることを NSString に理解させることはできますか?

すべてのスラッシュ ("\") を置き換えようとするさまざまな戦略を試しましたが、("\") NSString を追加するとすぐに、最初のスラッシュをエスケープするために別のスラッシュが追加されます。そして、ここで行き詰まる…

NSString が私の文字列をエスケープするのを防ぐことは可能ですか?

アップデート

これは特殊なケースであることは承知しています。ユーザーのドライブ上のファイルを読み取る端末プログラムからの出力の読み取り。NSTask を介して、出力を解析して配列に分割するために出力を NSString にキャプチャしています。非ASCII文字がない限り、うまく機能します。HFS+ は、NFD と呼ばれるわずかに異なる Unicode で非 ASCII 文字をエンコードしています。

応答をキャプチャしているとき、ÅÄÖ は次のように qouts 内に既にエンコードされています。

NSString を作成し、応答をキャプチャすると、NSString によってもう一度エスケープされます。

これが最適ではないことは承知していますが、現在、端末プログラムが出力しているものを制御できません。通常、この NFD エンコーディングで NSString が作成されると、Objectiv-C がエンコーディング/デコーディングを処理します。しかし、二重にエスケープされたコンテンツが混在する文字列があるため、それを作成して NSString にコンテンツがこのエンコーディングでエンコードされていることを理解させるのは難しい方法です。

基本的に私はこれをしたいと思います:

しかし、舞台裏では NSString は常に \ を別の \ でエスケープしているので、NSString が干渉することなく「生の」文字列を作成する方法が必要です。

NSString で Unicode エンコーディングを強制しようとするさまざまな方法を試しましたが、結局のところ、NSString は常に \ をキャプチャしてエスケープしています。

ヒントやポイントをいただければ幸いです。

0 投票する
1 に答える
1531 参照

ios - 不明なエンコーディングの TXT ファイルを文字列に変換する

エンコード タイプが不明な場合、プレーン テキスト (.txt) ファイルを文字列に変換するにはどうすればよいですか?

ユーザーが txt ファイルをアプリにインポートできるようにする機能に取り組んでいます。これは、プレーン テキスト ファイルに有効と見なされるさまざまなエンコーディングのいずれかを利用して、ファイルが任意の数のアプリで作成された可能性があることを意味します。私の理解では、これには (ASCII、UTF-8、UTF-16、UTF-16BE、UTF-16LE、UTF-32、UTF-32BE、UTF-32LE、または EBCDIC?!) が含まれる可能性があります。

以下を使用して、物事は順調に進んでいました。

その後、ユーザーがファイルを提供しましたが、インポートすると内容が空になりました。XCode デバッグでファイルを確認したところ、Cocoa エラー 261、NSStringEncoding=4 が表示されました。

私が知っていること:

  • ユーザー提供のファイルは、knowtes というアプリで作成されました
  • ファイルは、Mac OS X の TextEdit、TextWranger などで開きます。
  • ファイルには、ウムラウトなどの「特殊文字」が含まれています (暴言: ウムラウトの「u」にウムラウトがないのはなぜですか?!)
  • ファインダ情報が表示されます:

種類:テキスト

テキスト/プレーン; charset=utf-16le

NSUTF8ファイルを期待しているので、ファイルのutf-16leエンコーディングが鍵であると推測しています。最小公分母として ASCII を使用しようとしました。クラッシュはしませんでしたが、元のファイルには存在しなかった一部の文字がごまかされました。

そこで、エンコーディングを認識する必要がなくなることを期待して、最初にファイルを NSData に変換しようとしました。それは動かなかった。

これは私にいくつかの質問を導きます:

  1. エンコードに関係なく、プレーン テキスト ファイルの内容を文字列 (つまり、最小公分母) に変換する普遍的な方法はありませんか? 以前は目的initWithContentsOfFileだったと思いますが、残念ながら現在は廃止されています。ASCIStringEncoding が機能しませんでした。
  2. NSUTF16 でエンコードされたファイルを NSUTF8 の場合とは異なる方法で処理する必要がある文字列に変換することについて何かありますか?
  3. ファイルが実際に URF16LE であると仮定すると、次の提案も機能しないのはなぜですか?

    /li>
0 投票する
1 に答える
569 参照

ios - NSURLRequest で不正な NSStringEncoding 値 0x0000 が検出される

Swiftに変換しようとするとエラーが発生しNSDataますNSString

これは私の要求です:

ここでエラーが発生します:

私の両方が警告エラーを取り除こうとしましたが、うまくいきませんでした:私はtimeoutInterval200 に増加しました。

そして私は試しました:

この解決策はここではうまくいきませんでした: 不正な NSStringEncoding 値 0x0000 が検出されました

0 投票する
1 に答える
353 参照

swift - Swift で UnsafeMutablePointer を使用して文字列をエンコードおよびデコードする

UnsafeMutablePointers との間で文字列を変換するのに問題があります。次のコードは機能せず、間違った文字列を返します。

プレイグラウンド ファイルへのリンクはここにあります。Swift で UnsafeMutablePointers を文字列に使用した経験がある場合は、ここ数日進歩が見られないため、ガイダンスをいただければ幸いです。再度、感謝します!