相关疑难解决方法(0)

为什么朱莉娅不鼓励对UTF8字符串进行索引?

Julia的入门指南,Y Minutes中的Learn Julia,不鼓励用户索引UTF8字符串:

# Some strings can be indexed like an array of characters
"This is a string"[1] # => 'T' # Julia indexes from 1
# However, this is will not work well for UTF8 strings,
# so iterating over strings is recommended (map, for loops, etc).
Run Code Online (Sandbox Code Playgroud)

为什么不鼓励迭代这些字符串呢?具体关于这种备用字符串类型的结构会使索引错误?这是Julia特定的陷阱,还是扩展到所有支持UTF8字符串的语言?

string utf-8 julia

9
推荐指数
1
解决办法
787
查看次数

Julia:如何读入和输出带变音符号的字符?

处理超出 1-127 范围的 ASCII 字符很容易使 Julia 崩溃。

\n
mystring = "A-Za-z\xc3\x80-\xc3\xbf\xc5\xbd\xc5\xbe"\nfor i in 1:length(mystring)\n    print(i,":::")\n    print(Int(mystring[i]),"::" )\n    println(  mystring[i]       )\nend\n
Run Code Online (Sandbox Code Playgroud)\n

给我

\n
1:::65::A\n2:::45::-\n3:::90::Z\n4:::97::a\n5:::45::-\n6:::122::z\n7:::192::\xc3\x80\n8:::ERROR: LoadError: StringIndexError("A-Za-z\xc3\x80-\xc3\xbf\xc5\xbd\xc5\xbe", 8)\nStacktrace:\n [1] string_index_err(::String, ::Int64) at .\\strings\\string.jl:12\n [2] getindex_continued(::String, ::Int64, ::UInt32) at .\\strings\\string.jl:220\n [3] getindex(::String, ::Int64) at .\\strings\\string.jl:213\n [4] top-level scope at R:\\_LV\\STZ\\Web_admin\\Languages\\Action\\Returning\\chars.jl:5\n [5] include(::String) at .\\client.jl:457\n [6] top-level scope at REPL[18]:1 \n
Run Code Online (Sandbox Code Playgroud)\n

它在输出正常范围之外的第一个字符后崩溃,而不是在输出期间崩溃,这在字符串索引错误(Julia)
的答案中提到\n如果在 Julia 中声明值,应该将它们声明为 Unicode,但我有这些字符在我的输入中。
\n手册说 Julia 会查看语言环境,但是是否存在“无处不在”的语言环境?
\n
\n是否有某种方法可以在 Julia 中处理这些字符的输入和输出?

\n

我正在使用 Windows10,但如果 Linux 更适合我,我可以切换到 Linux。

\n

ascii character diacritics julia

6
推荐指数
1
解决办法
219
查看次数

标签 统计

julia ×2

ascii ×1

character ×1

diacritics ×1

string ×1

utf-8 ×1