iPhone中的NSString、C字符串、路径名和编码
我正在iPhone应用程序中使用libxml2。我有一个保存XML文件路径名的iPhone中的NSString、C字符串、路径名和编码,iphone,objective-c,character-encoding,libxml2,Iphone,Objective C,Character Encoding,Libxml2,我正在iPhone应用程序中使用libxml2。我有一个保存XML文件路径名的NSString。路径名可能包括非ASCII字符。我想获取要传递到xmlReadFile()的NSString的C字符串表示形式。似乎CStringUsingEncode为我提供了我所寻求的表示。我不清楚使用哪种编码 我想知道iPhone操作系统中是否有一个“默认”编码,我可以在这里使用,并确保可以往返非ASCII路径名。使用NSString。如果字符串包含文件系统编码中不可表示的字符,则此方法将引发异常 要转换回,请
NSString
。路径名可能包括非ASCII字符。我想获取要传递到xmlReadFile()
的NSString
的C字符串表示形式。似乎CStringUsingEncode为我提供了我所寻求的表示。我不清楚使用哪种编码
我想知道iPhone操作系统中是否有一个“默认”编码,我可以在这里使用,并确保可以往返非ASCII路径名。使用NSString。如果字符串包含文件系统编码中不可表示的字符,则此方法将引发异常
要转换回,请使用NSFileManager的使用NSString的。如果字符串包含文件系统编码中不可表示的字符,则此方法将引发异常
要转换回,请使用NSFileManager的我注意到您链接到的文档中说,“此方法通过将抽象路径和扩展分隔符('/'和'.'分别替换为操作系统的等效字符来操作。”我注意到它没有提到非ASCII字符。@iter:那可能是因为文件系统通常不为非ASCII字符定义特殊含义,所以它们在这方面没有得到任何特殊处理。你以为它会说些什么呢?在我的Mac电脑上,我只是用一个包含
テストファイル.txt,并在调用fopen
时使用fileSystemRepresentation
的结果进行了处理。为什么你对这种方法持怀疑态度?我不怀疑,我甚至试着学习iPhone操作系统的区域设置处理约定。在其他操作系统上,我担心的是,我的程序使用一种约定将字符编码为字节(比如UTF8),而另一个程序使用另一种约定(比如Shift JIS),而我在另一个程序中编写的内容看起来像胡言乱语。我所熟悉的大多数操作系统都在环境变量或等效变量中使用“系统”编码,因此所有程序都可以使用相同的编码。我想这在电话上没有那么重要,因为只有我的程序才能访问我的文件,我只需要与我自己保持一致。我注意到,您链接到的文档中说,“此方法通过替换抽象路径和扩展分隔符(“/”和“.”)来操作。”“我注意到它没有提到非ASCII字符。@iter:那可能是因为文件系统通常不为非ASCII字符定义特殊含义,所以它们在这方面没有得到任何特殊处理。你以为它会说些什么呢?在我的Mac电脑上,我只是用一个包含テストファイル.txt,并在调用fopen
时使用fileSystemRepresentation
的结果进行了处理。为什么你对这种方法持怀疑态度?我不怀疑,我甚至试着学习iPhone操作系统的区域设置处理约定。在其他操作系统上,我担心的是,我的程序使用一种约定将字符编码为字节(比如UTF8),而另一个程序使用另一种约定(比如Shift JIS),而我在另一个程序中编写的内容看起来像胡言乱语。我所熟悉的大多数操作系统都在环境变量或等效变量中使用“系统”编码,因此所有程序都可以使用相同的编码。我想这在电话上并不重要,因为只有我的程序才能访问我的文件,我只需要与自己保持一致。